forked from awslabs/goformation
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Group CloudFormation resources by AWS service name (awslabs#234)
* fix(schema): Move resources to separate packages BREAKING CHANGE: this change moves all Cloudformation resources to packages based on the AWS service name. The main motivation for this is that building goformation on some platforms (Windows) failed due to too many files in the old cloudformation/resources package. This new package style has a nice benefit of slightly nicer to use API, but is a breaking change and will require refactoring existing codebases to update to v3. Old usage: ```go import "github.com/awslabs/goformation/v2/cloudformation/resources" ... snip ... topic := &resources.AWSSNSTopic{} ``` New usage: ```go import "github.com/awslabs/goformation/v3/cloudformation/sns" ...snip... topic := &sns.Topic{} ``` Most tests are still failing at this point and need refactoring. * fix(schema): Tag handling Fixed tag handling for new grouped resources style (via new tags.Tag struct). * fix(schema): SAM specification SAM Specification now generates nicely with new grouped resources format. Also all tests are now passing \o/
- Loading branch information
1 parent
7914822
commit d0749e6
Showing
2,427 changed files
with
121,308 additions
and
71,445 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -27,7 +27,7 @@ | |
As with other Go libraries, GoFormation can be installed with `go get`. | ||
|
||
``` | ||
$ go get github.com/awslabs/goformation/v2 | ||
$ go get github.com/awslabs/goformation/v3 | ||
``` | ||
|
||
## Usage | ||
|
@@ -44,8 +44,10 @@ import ( | |
"strconv" | ||
"time" | ||
|
||
"github.com/awslabs/goformation/v2/cloudformation" | ||
"github.com/awslabs/goformation/v2/cloudformation/resources" | ||
"github.com/awslabs/goformation/v3/cloudformation" | ||
"github.com/awslabs/goformation/v3/cloudformation/sns" | ||
|
||
|
||
) | ||
|
||
func main() { | ||
|
@@ -54,12 +56,12 @@ func main() { | |
template := cloudformation.NewTemplate() | ||
|
||
// Create an Amazon SNS topic, with a unique name based off the current timestamp | ||
template.Resources["MyTopic"] = &resources.AWSSNSTopic{ | ||
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"] = &resources.AWSSNSSubscription{ | ||
template.Resources["MyTopicSubscription"] = &sns.Subscription{ | ||
TopicArn: cloudformation.Ref("MyTopic"), | ||
Protocol: "email", | ||
Endpoint: "[email protected]", | ||
|
@@ -157,7 +159,7 @@ package main | |
import ( | ||
"log" | ||
"github.com/awslabs/goformation/v2" | ||
"github.com/awslabs/goformation/v3" | ||
) | ||
func main() { | ||
|
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
cloudformation/amazonmq/aws-amazonmq-broker_configurationid.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
package amazonmq | ||
|
||
import ( | ||
"github.com/awslabs/goformation/v3/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 string `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 int `json:"Revision"` | ||
|
||
// _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 *Broker_ConfigurationId) AWSCloudFormationType() string { | ||
return "AWS::AmazonMQ::Broker.ConfigurationId" | ||
} | ||
|
||
// 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 *Broker_ConfigurationId) 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 *Broker_ConfigurationId) 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 *Broker_ConfigurationId) 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 *Broker_ConfigurationId) 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 *Broker_ConfigurationId) 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 *Broker_ConfigurationId) SetDeletionPolicy(policy policies.DeletionPolicy) { | ||
r._deletionPolicy = policy | ||
} |
70 changes: 70 additions & 0 deletions
70
cloudformation/amazonmq/aws-amazonmq-broker_encryptionoptions.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
package amazonmq | ||
|
||
import ( | ||
"github.com/awslabs/goformation/v3/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 string `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 bool `json:"UseAwsOwnedKey"` | ||
|
||
// _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 *Broker_EncryptionOptions) AWSCloudFormationType() string { | ||
return "AWS::AmazonMQ::Broker.EncryptionOptions" | ||
} | ||
|
||
// 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 *Broker_EncryptionOptions) 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 *Broker_EncryptionOptions) 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 *Broker_EncryptionOptions) 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 *Broker_EncryptionOptions) 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 *Broker_EncryptionOptions) 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 *Broker_EncryptionOptions) SetDeletionPolicy(policy policies.DeletionPolicy) { | ||
r._deletionPolicy = policy | ||
} |
Oops, something went wrong.