Skip to content

Commit

Permalink
Merge pull request #7 from pnwcode/merge-latest-upstream
Browse files Browse the repository at this point in the history
Merge latest upstream
  • Loading branch information
parsnips authored Nov 5, 2020
2 parents 444749b + 78402e1 commit ece2b92
Show file tree
Hide file tree
Showing 55 changed files with 5,442 additions and 873 deletions.
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "gomod" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
35 changes: 32 additions & 3 deletions .github/workflows/update_schema.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
name: Update Schema

on:
on:
# Update goformation from the CloudFormation Resource Specification daily
schedule:
- cron: '0 0 * * *'
# Also allow manual execution from the GitHub Actions page
workflow_dispatch: {}

jobs:
run:
Expand All @@ -15,8 +18,34 @@ jobs:

- name: Check out code into the Go module directory
uses: actions/checkout@v1

- name: Update Schema
run: ./generate/create-pull-request.sh
run: |
echo 'GENERATE_OUTPUT<<EOF' >> $GITHUB_ENV
echo 'This pull request was automatically generated, and includes updates to goformation based on new or updated resources in the [AWS CloudFormation Resource Specification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html).' >> $GITHUB_ENV
echo '' >> $GITHUB_ENV
echo 'Below is the output from `go generate`:' >> $GITHUB_ENV
echo '' >> $GITHUB_ENV
echo '```' >> $GITHUB_ENV
go generate | tee -a $GITHUB_ENV
echo '```' >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Run Tests
run: go test ./...

- name: Generate Pull Request
uses: peter-evans/create-pull-request@c7f493a8000b8aeb17a1332e326ba76b57cb83eb
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
title: "CloudFormation Updates"
body: ${{ env.GENERATE_OUTPUT }}
commit-message: "fix(schema): CloudFormation Updates"
base: master
branch: auto-schema-update
delete-branch: true
committer: "Paul Maddox <[email protected]>"
author: "Paul Maddox <[email protected]>"
assignees: PaulMaddox

28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# GoFormation Versioning Changelog

## [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)


Expand Down
10 changes: 10 additions & 0 deletions LOGO.md
Original file line number Diff line number Diff line change
@@ -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.

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
![AWS GoFormation logo](./static/logo.png)

# AWS GoFormation

![Version](https://img.shields.io/github/v/release/awslabs/goformation?label=stable%20version) ![Commits since release](https://img.shields.io/github/commits-since/awslabs/goformation/latest) [![Actions Status](https://github.com/awslabs/goformation/workflows/Release/badge.svg)](https://github.com/awslabs/goformation/actions) ![Update Schema](https://github.com/awslabs/goformation/workflows/Update%20Schema/badge.svg) [![GoDoc Reference](https://godoc.org/gopkg.in/awslabs/goformation.v1?status.svg)](http://godoc.org/github.com/awslabs/goformation) ![Apache-2.0](https://img.shields.io/badge/Licence-Apache%202.0-blue.svg) ![Downloads](https://img.shields.io/github/downloads/awslabs/goformation/total)
Expand Down
152 changes: 152 additions & 0 deletions cloudformation/all.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@ import (
"github.com/awslabs/goformation/v4/cloudformation/iot1click"
"github.com/awslabs/goformation/v4/cloudformation/iotanalytics"
"github.com/awslabs/goformation/v4/cloudformation/iotevents"
"github.com/awslabs/goformation/v4/cloudformation/iotsitewise"
"github.com/awslabs/goformation/v4/cloudformation/iotthingsgraph"
"github.com/awslabs/goformation/v4/cloudformation/ivs"
"github.com/awslabs/goformation/v4/cloudformation/kendra"
"github.com/awslabs/goformation/v4/cloudformation/kinesis"
"github.com/awslabs/goformation/v4/cloudformation/kinesisanalytics"
Expand Down Expand Up @@ -470,6 +472,9 @@ func AllResources() map[string]Resource {
"AWS::IAM::ServiceLinkedRole": &iam.ServiceLinkedRole{},
"AWS::IAM::User": &iam.User{},
"AWS::IAM::UserToGroupAddition": &iam.UserToGroupAddition{},
"AWS::IVS::Channel": &ivs.Channel{},
"AWS::IVS::PlaybackKeyPair": &ivs.PlaybackKeyPair{},
"AWS::IVS::StreamKey": &ivs.StreamKey{},
"AWS::ImageBuilder::Component": &imagebuilder.Component{},
"AWS::ImageBuilder::DistributionConfiguration": &imagebuilder.DistributionConfiguration{},
"AWS::ImageBuilder::Image": &imagebuilder.Image{},
Expand All @@ -496,6 +501,9 @@ func AllResources() map[string]Resource {
"AWS::IoTAnalytics::Pipeline": &iotanalytics.Pipeline{},
"AWS::IoTEvents::DetectorModel": &iotevents.DetectorModel{},
"AWS::IoTEvents::Input": &iotevents.Input{},
"AWS::IoTSiteWise::Asset": &iotsitewise.Asset{},
"AWS::IoTSiteWise::AssetModel": &iotsitewise.AssetModel{},
"AWS::IoTSiteWise::Gateway": &iotsitewise.Gateway{},
"AWS::IoTThingsGraph::FlowTemplate": &iotthingsgraph.FlowTemplate{},
"AWS::KMS::Alias": &kms.Alias{},
"AWS::KMS::Key": &kms.Key{},
Expand Down Expand Up @@ -8763,6 +8771,78 @@ func (t *Template) GetIAMUserToGroupAdditionWithName(name string) (*iam.UserToGr
return nil, fmt.Errorf("resource %q of type iam.UserToGroupAddition 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)
}

// 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{}
Expand Down Expand Up @@ -9387,6 +9467,78 @@ func (t *Template) GetIoTEventsInputWithName(name string) (*iotevents.Input, err
return nil, fmt.Errorf("resource %q of type iotevents.Input 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)
}

// 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)
}

// GetAllIoTThingsGraphFlowTemplateResources retrieves all iotthingsgraph.FlowTemplate items from an AWS CloudFormation template
func (t *Template) GetAllIoTThingsGraphFlowTemplateResources() map[string]*iotthingsgraph.FlowTemplate {
results := map[string]*iotthingsgraph.FlowTemplate{}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
// CustomResource AWS CloudFormation Resource (AWS::CloudFormation::CustomResource)
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
type CustomResource struct {

// Properties AWS CloudFormation Property
// Required: false
// See:
Expand Down
5 changes: 5 additions & 0 deletions cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ type LifecyclePolicy_Parameters struct {
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html#cfn-dlm-lifecyclepolicy-parameters-excludebootvolume
ExcludeBootVolume bool `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 bool `json:"NoReboot,omitempty"`

// AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`

Expand Down
5 changes: 5 additions & 0 deletions cloudformation/ec2/aws-ec2-clientvpnendpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ type ClientVpnEndpoint struct {
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-securitygroupids
SecurityGroupIds []string `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 string `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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ type ClientVpnEndpoint_FederatedAuthenticationRequest struct {
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-samlproviderarn
SAMLProviderArn string `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 string `json:"SelfServiceSAMLProviderArn,omitempty"`

// AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`

Expand Down
5 changes: 0 additions & 5 deletions cloudformation/ec2/aws-ec2-vpcendpointservice.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,6 @@ type VPCEndpointService struct {
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-acceptancerequired
AcceptanceRequired bool `json:"AcceptanceRequired,omitempty"`

// ApplianceLoadBalancerArns AWS CloudFormation Property
// Required: false
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-applianceloadbalancerarns
ApplianceLoadBalancerArns []string `json:"ApplianceLoadBalancerArns,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
Expand Down
2 changes: 1 addition & 1 deletion cloudformation/ecr/aws-ecr-repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ type Repository struct {
// 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 string `json:"RepositoryPolicyText,omitempty"`
RepositoryPolicyText interface{} `json:"RepositoryPolicyText,omitempty"`

// Tags AWS CloudFormation Property
// Required: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ type EndpointGroup struct {
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-listenerarn
ListenerArn string `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
Expand Down
Loading

0 comments on commit ece2b92

Please sign in to comment.