diff --git a/cloudformation/appmesh/aws-appmesh-mesh.go b/cloudformation/appmesh/aws-appmesh-mesh.go deleted file mode 100644 index 7f2ebeb1ba..0000000000 --- a/cloudformation/appmesh/aws-appmesh-mesh.go +++ /dev/null @@ -1,135 +0,0 @@ -package appmesh - -import ( - "bytes" - "encoding/json" - "fmt" - - "github.com/awslabs/goformation/v3/cloudformation/policies" - "github.com/awslabs/goformation/v3/cloudformation/tags" -) - -// 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: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-meshname - MeshName string `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 []tags.Tag `json:"Tags,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 *Mesh) AWSCloudFormationType() string { - return "AWS::AppMesh::Mesh" -} - -// 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 *Mesh) 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 *Mesh) 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 *Mesh) 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 *Mesh) 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 *Mesh) 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 *Mesh) SetDeletionPolicy(policy policies.DeletionPolicy) { - r._deletionPolicy = 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 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"` - }{ - Type: r.AWSCloudFormationType(), - Properties: (Properties)(r), - DependsOn: r._dependsOn, - Metadata: r._metadata, - DeletionPolicy: r._deletionPolicy, - }) -} - -// 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 - }{} - - dec := json.NewDecoder(bytes.NewReader(b)) - dec.DisallowUnknownFields() // Force error if unknown field is found - - if err := dec.Decode(&res); err != nil { - 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._dependsOn = res.DependsOn - } - if res.Metadata != nil { - r._metadata = res.Metadata - } - if res.DeletionPolicy != "" { - r._deletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) - } - return nil -}