diff --git a/cloudformation/all.go b/cloudformation/all.go index 525806aa43..1519c7f277 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -835,6 +835,7 @@ func AllResources() map[string]Resource { "AWS::MSK::BatchScramSecret": &msk.BatchScramSecret{}, "AWS::MSK::Cluster": &msk.Cluster{}, "AWS::MSK::Configuration": &msk.Configuration{}, + "AWS::MSK::ServerlessCluster": &msk.ServerlessCluster{}, "AWS::MWAA::Environment": &mwaa.Environment{}, "AWS::Macie::CustomDataIdentifier": &macie.CustomDataIdentifier{}, "AWS::Macie::FindingsFilter": &macie.FindingsFilter{}, @@ -16258,6 +16259,30 @@ func (t *Template) GetMSKConfigurationWithName(name string) (*msk.Configuration, return nil, fmt.Errorf("resource %q of type msk.Configuration not found", name) } +// GetAllMSKServerlessClusterResources retrieves all msk.ServerlessCluster items from an AWS CloudFormation template +func (t *Template) GetAllMSKServerlessClusterResources() map[string]*msk.ServerlessCluster { + results := map[string]*msk.ServerlessCluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *msk.ServerlessCluster: + results[name] = resource + } + } + return results +} + +// GetMSKServerlessClusterWithName retrieves all msk.ServerlessCluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMSKServerlessClusterWithName(name string) (*msk.ServerlessCluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *msk.ServerlessCluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type msk.ServerlessCluster 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{} diff --git a/cloudformation/ec2/aws-ec2-ipampool.go b/cloudformation/ec2/aws-ec2-ipampool.go index 2a2f471670..f669fcec30 100644 --- a/cloudformation/ec2/aws-ec2-ipampool.go +++ b/cloudformation/ec2/aws-ec2-ipampool.go @@ -45,6 +45,11 @@ type IPAMPool struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-autoimport AutoImport *bool `json:"AutoImport,omitempty"` + // AwsService AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-awsservice + AwsService *string `json:"AwsService,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 diff --git a/cloudformation/fms/aws-fms-policy.go b/cloudformation/fms/aws-fms-policy.go index 1e93c39f3b..829e6b48d2 100644 --- a/cloudformation/fms/aws-fms-policy.go +++ b/cloudformation/fms/aws-fms-policy.go @@ -67,7 +67,7 @@ type Policy struct { // 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"` + SecurityServicePolicyData *Policy_SecurityServicePolicyData `json:"SecurityServicePolicyData"` // Tags AWS CloudFormation Property // Required: false diff --git a/cloudformation/fms/aws-fms-policy_networkfirewallpolicy.go b/cloudformation/fms/aws-fms-policy_networkfirewallpolicy.go new file mode 100644 index 0000000000..bade90b991 --- /dev/null +++ b/cloudformation/fms/aws-fms-policy_networkfirewallpolicy.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fms + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Policy_NetworkFirewallPolicy AWS CloudFormation Resource (AWS::FMS::Policy.NetworkFirewallPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html +type Policy_NetworkFirewallPolicy struct { + + // FirewallDeploymentModel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html#cfn-fms-policy-networkfirewallpolicy-firewalldeploymentmodel + FirewallDeploymentModel string `json:"FirewallDeploymentModel"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of 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_NetworkFirewallPolicy) AWSCloudFormationType() string { + return "AWS::FMS::Policy.NetworkFirewallPolicy" +} diff --git a/cloudformation/fms/aws-fms-policy_policyoption.go b/cloudformation/fms/aws-fms-policy_policyoption.go new file mode 100644 index 0000000000..21a46bfa9a --- /dev/null +++ b/cloudformation/fms/aws-fms-policy_policyoption.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fms + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Policy_PolicyOption AWS CloudFormation Resource (AWS::FMS::Policy.PolicyOption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policyoption.html +type Policy_PolicyOption struct { + + // NetworkFirewallPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policyoption.html#cfn-fms-policy-policyoption-networkfirewallpolicy + NetworkFirewallPolicy *Policy_NetworkFirewallPolicy `json:"NetworkFirewallPolicy,omitempty"` + + // ThirdPartyFirewallPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policyoption.html#cfn-fms-policy-policyoption-thirdpartyfirewallpolicy + ThirdPartyFirewallPolicy *Policy_ThirdPartyFirewallPolicy `json:"ThirdPartyFirewallPolicy,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of 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_PolicyOption) AWSCloudFormationType() string { + return "AWS::FMS::Policy.PolicyOption" +} diff --git a/cloudformation/fms/aws-fms-policy_securityservicepolicydata.go b/cloudformation/fms/aws-fms-policy_securityservicepolicydata.go new file mode 100644 index 0000000000..151ed9f76b --- /dev/null +++ b/cloudformation/fms/aws-fms-policy_securityservicepolicydata.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fms + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Policy_SecurityServicePolicyData AWS CloudFormation Resource (AWS::FMS::Policy.SecurityServicePolicyData) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-securityservicepolicydata.html +type Policy_SecurityServicePolicyData struct { + + // ManagedServiceData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-securityservicepolicydata.html#cfn-fms-policy-securityservicepolicydata-managedservicedata + ManagedServiceData *string `json:"ManagedServiceData,omitempty"` + + // PolicyOption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-securityservicepolicydata.html#cfn-fms-policy-securityservicepolicydata-policyoption + PolicyOption *Policy_PolicyOption `json:"PolicyOption,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-securityservicepolicydata.html#cfn-fms-policy-securityservicepolicydata-type + Type string `json:"Type"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of 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_SecurityServicePolicyData) AWSCloudFormationType() string { + return "AWS::FMS::Policy.SecurityServicePolicyData" +} diff --git a/cloudformation/fms/aws-fms-policy_thirdpartyfirewallpolicy.go b/cloudformation/fms/aws-fms-policy_thirdpartyfirewallpolicy.go new file mode 100644 index 0000000000..bf59259d96 --- /dev/null +++ b/cloudformation/fms/aws-fms-policy_thirdpartyfirewallpolicy.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fms + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Policy_ThirdPartyFirewallPolicy AWS CloudFormation Resource (AWS::FMS::Policy.ThirdPartyFirewallPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html +type Policy_ThirdPartyFirewallPolicy struct { + + // FirewallDeploymentModel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html#cfn-fms-policy-thirdpartyfirewallpolicy-firewalldeploymentmodel + FirewallDeploymentModel string `json:"FirewallDeploymentModel"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of 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_ThirdPartyFirewallPolicy) AWSCloudFormationType() string { + return "AWS::FMS::Policy.ThirdPartyFirewallPolicy" +} diff --git a/cloudformation/msk/aws-msk-serverlesscluster.go b/cloudformation/msk/aws-msk-serverlesscluster.go new file mode 100644 index 0000000000..4682f598d7 --- /dev/null +++ b/cloudformation/msk/aws-msk-serverlesscluster.go @@ -0,0 +1,134 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// ServerlessCluster AWS CloudFormation Resource (AWS::MSK::ServerlessCluster) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html +type ServerlessCluster struct { + + // ClientAuthentication AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-clientauthentication + ClientAuthentication *ServerlessCluster_ClientAuthentication `json:"ClientAuthentication"` + + // ClusterName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-clustername + ClusterName string `json:"ClusterName"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-tags + Tags *map[string]string `json:"Tags,omitempty"` + + // VpcConfigs AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-serverlesscluster.html#cfn-msk-serverlesscluster-vpcconfigs + VpcConfigs []ServerlessCluster_VpcConfig `json:"VpcConfigs"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ServerlessCluster) AWSCloudFormationType() string { + return "AWS::MSK::ServerlessCluster" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r ServerlessCluster) MarshalJSON() ([]byte, error) { + type Properties ServerlessCluster + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *ServerlessCluster) UnmarshalJSON(b []byte) error { + type Properties ServerlessCluster + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ServerlessCluster(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/msk/aws-msk-serverlesscluster_clientauthentication.go b/cloudformation/msk/aws-msk-serverlesscluster_clientauthentication.go new file mode 100644 index 0000000000..edf4ee9557 --- /dev/null +++ b/cloudformation/msk/aws-msk-serverlesscluster_clientauthentication.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// ServerlessCluster_ClientAuthentication AWS CloudFormation Resource (AWS::MSK::ServerlessCluster.ClientAuthentication) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-clientauthentication.html +type ServerlessCluster_ClientAuthentication struct { + + // Sasl AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-clientauthentication.html#cfn-msk-serverlesscluster-clientauthentication-sasl + Sasl *ServerlessCluster_Sasl `json:"Sasl"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ServerlessCluster_ClientAuthentication) AWSCloudFormationType() string { + return "AWS::MSK::ServerlessCluster.ClientAuthentication" +} diff --git a/cloudformation/msk/aws-msk-serverlesscluster_iam.go b/cloudformation/msk/aws-msk-serverlesscluster_iam.go new file mode 100644 index 0000000000..719fbdbf6b --- /dev/null +++ b/cloudformation/msk/aws-msk-serverlesscluster_iam.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// ServerlessCluster_Iam AWS CloudFormation Resource (AWS::MSK::ServerlessCluster.Iam) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-iam.html +type ServerlessCluster_Iam struct { + + // Enabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-iam.html#cfn-msk-serverlesscluster-iam-enabled + Enabled bool `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 *ServerlessCluster_Iam) AWSCloudFormationType() string { + return "AWS::MSK::ServerlessCluster.Iam" +} diff --git a/cloudformation/msk/aws-msk-serverlesscluster_sasl.go b/cloudformation/msk/aws-msk-serverlesscluster_sasl.go new file mode 100644 index 0000000000..9740b1f725 --- /dev/null +++ b/cloudformation/msk/aws-msk-serverlesscluster_sasl.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// ServerlessCluster_Sasl AWS CloudFormation Resource (AWS::MSK::ServerlessCluster.Sasl) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-sasl.html +type ServerlessCluster_Sasl struct { + + // Iam AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-sasl.html#cfn-msk-serverlesscluster-sasl-iam + Iam *ServerlessCluster_Iam `json:"Iam"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ServerlessCluster_Sasl) AWSCloudFormationType() string { + return "AWS::MSK::ServerlessCluster.Sasl" +} diff --git a/cloudformation/msk/aws-msk-serverlesscluster_vpcconfig.go b/cloudformation/msk/aws-msk-serverlesscluster_vpcconfig.go new file mode 100644 index 0000000000..fbe350d805 --- /dev/null +++ b/cloudformation/msk/aws-msk-serverlesscluster_vpcconfig.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// ServerlessCluster_VpcConfig AWS CloudFormation Resource (AWS::MSK::ServerlessCluster.VpcConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-vpcconfig.html +type ServerlessCluster_VpcConfig struct { + + // SecurityGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-vpcconfig.html#cfn-msk-serverlesscluster-vpcconfig-securitygroups + SecurityGroups *[]string `json:"SecurityGroups,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-serverlesscluster-vpcconfig.html#cfn-msk-serverlesscluster-vpcconfig-subnetids + SubnetIds []string `json:"SubnetIds"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ServerlessCluster_VpcConfig) AWSCloudFormationType() string { + return "AWS::MSK::ServerlessCluster.VpcConfig" +} diff --git a/cloudformation/rds/aws-rds-dbinstance.go b/cloudformation/rds/aws-rds-dbinstance.go index c324a85954..3245e10863 100644 --- a/cloudformation/rds/aws-rds-dbinstance.go +++ b/cloudformation/rds/aws-rds-dbinstance.go @@ -12,267 +12,267 @@ import ( ) // DBInstance AWS CloudFormation Resource (AWS::RDS::DBInstance) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html type DBInstance struct { // AllocatedStorage AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-allocatedstorage + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-allocatedstorage AllocatedStorage *string `json:"AllocatedStorage,omitempty"` // AllowMajorVersionUpgrade AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-allowmajorversionupgrade + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-allowmajorversionupgrade AllowMajorVersionUpgrade *bool `json:"AllowMajorVersionUpgrade,omitempty"` // AssociatedRoles AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-associatedroles + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-associatedroles AssociatedRoles *[]DBInstance_DBInstanceRole `json:"AssociatedRoles,omitempty"` // AutoMinorVersionUpgrade AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-autominorversionupgrade + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-autominorversionupgrade AutoMinorVersionUpgrade *bool `json:"AutoMinorVersionUpgrade,omitempty"` // AvailabilityZone AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-availabilityzone + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-availabilityzone AvailabilityZone *string `json:"AvailabilityZone,omitempty"` // BackupRetentionPeriod AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-backupretentionperiod + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-backupretentionperiod BackupRetentionPeriod *int `json:"BackupRetentionPeriod,omitempty"` // CACertificateIdentifier AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-cacertificateidentifier + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-cacertificateidentifier CACertificateIdentifier *string `json:"CACertificateIdentifier,omitempty"` // CharacterSetName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-charactersetname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-charactersetname CharacterSetName *string `json:"CharacterSetName,omitempty"` // CopyTagsToSnapshot AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-copytagstosnapshot + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-copytagstosnapshot CopyTagsToSnapshot *bool `json:"CopyTagsToSnapshot,omitempty"` // DBClusterIdentifier AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbclusteridentifier + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbclusteridentifier DBClusterIdentifier *string `json:"DBClusterIdentifier,omitempty"` // DBInstanceClass AWS CloudFormation Property - // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbinstanceclass - DBInstanceClass string `json:"DBInstanceClass"` + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbinstanceclass + DBInstanceClass *string `json:"DBInstanceClass,omitempty"` // DBInstanceIdentifier AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbinstanceidentifier + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbinstanceidentifier DBInstanceIdentifier *string `json:"DBInstanceIdentifier,omitempty"` // DBName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbname DBName *string `json:"DBName,omitempty"` // DBParameterGroupName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbparametergroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbparametergroupname DBParameterGroupName *string `json:"DBParameterGroupName,omitempty"` // DBSecurityGroups AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbsecuritygroups DBSecurityGroups *[]string `json:"DBSecurityGroups,omitempty"` // DBSnapshotIdentifier AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsnapshotidentifier + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbsnapshotidentifier DBSnapshotIdentifier *string `json:"DBSnapshotIdentifier,omitempty"` // DBSubnetGroupName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsubnetgroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-dbsubnetgroupname DBSubnetGroupName *string `json:"DBSubnetGroupName,omitempty"` // DeleteAutomatedBackups AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-deleteautomatedbackups + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-deleteautomatedbackups DeleteAutomatedBackups *bool `json:"DeleteAutomatedBackups,omitempty"` // DeletionProtection AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-deletionprotection + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-deletionprotection DeletionProtection *bool `json:"DeletionProtection,omitempty"` // Domain AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-domain + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-domain Domain *string `json:"Domain,omitempty"` // DomainIAMRoleName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-domainiamrolename + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-domainiamrolename DomainIAMRoleName *string `json:"DomainIAMRoleName,omitempty"` // EnableCloudwatchLogsExports AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enablecloudwatchlogsexports + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-enablecloudwatchlogsexports EnableCloudwatchLogsExports *[]string `json:"EnableCloudwatchLogsExports,omitempty"` // EnableIAMDatabaseAuthentication AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableiamdatabaseauthentication + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-enableiamdatabaseauthentication EnableIAMDatabaseAuthentication *bool `json:"EnableIAMDatabaseAuthentication,omitempty"` // EnablePerformanceInsights AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-enableperformanceinsights EnablePerformanceInsights *bool `json:"EnablePerformanceInsights,omitempty"` // Engine AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engine + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-engine Engine *string `json:"Engine,omitempty"` // EngineVersion AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-engineversion + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-engineversion EngineVersion *string `json:"EngineVersion,omitempty"` // Iops AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-iops + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-iops Iops *int `json:"Iops,omitempty"` // KmsKeyId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-kmskeyid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-kmskeyid KmsKeyId *string `json:"KmsKeyId,omitempty"` // LicenseModel AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-licensemodel + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-licensemodel LicenseModel *string `json:"LicenseModel,omitempty"` // MasterUserPassword AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-masteruserpassword + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-masteruserpassword MasterUserPassword *string `json:"MasterUserPassword,omitempty"` // MasterUsername AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-masterusername + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-masterusername MasterUsername *string `json:"MasterUsername,omitempty"` // MaxAllocatedStorage AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-maxallocatedstorage + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-maxallocatedstorage MaxAllocatedStorage *int `json:"MaxAllocatedStorage,omitempty"` // MonitoringInterval AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-monitoringinterval + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-monitoringinterval MonitoringInterval *int `json:"MonitoringInterval,omitempty"` // MonitoringRoleArn AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-monitoringrolearn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-monitoringrolearn MonitoringRoleArn *string `json:"MonitoringRoleArn,omitempty"` // MultiAZ AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-multiaz + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-multiaz MultiAZ *bool `json:"MultiAZ,omitempty"` // OptionGroupName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-optiongroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-optiongroupname OptionGroupName *string `json:"OptionGroupName,omitempty"` // PerformanceInsightsKMSKeyId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-performanceinsightskmskeyid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-performanceinsightskmskeyid PerformanceInsightsKMSKeyId *string `json:"PerformanceInsightsKMSKeyId,omitempty"` // PerformanceInsightsRetentionPeriod AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-performanceinsightsretentionperiod + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-performanceinsightsretentionperiod PerformanceInsightsRetentionPeriod *int `json:"PerformanceInsightsRetentionPeriod,omitempty"` // Port AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-port Port *string `json:"Port,omitempty"` // PreferredBackupWindow AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-preferredbackupwindow + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-preferredbackupwindow PreferredBackupWindow *string `json:"PreferredBackupWindow,omitempty"` // PreferredMaintenanceWindow AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-preferredmaintenancewindow + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-preferredmaintenancewindow PreferredMaintenanceWindow *string `json:"PreferredMaintenanceWindow,omitempty"` // ProcessorFeatures AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-processorfeatures + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-processorfeatures ProcessorFeatures *[]DBInstance_ProcessorFeature `json:"ProcessorFeatures,omitempty"` // PromotionTier AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-promotiontier + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-promotiontier PromotionTier *int `json:"PromotionTier,omitempty"` // PubliclyAccessible AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-publiclyaccessible + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-publiclyaccessible PubliclyAccessible *bool `json:"PubliclyAccessible,omitempty"` // SourceDBInstanceIdentifier AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-sourcedbinstanceidentifier + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-sourcedbinstanceidentifier SourceDBInstanceIdentifier *string `json:"SourceDBInstanceIdentifier,omitempty"` // SourceRegion AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-sourceregion + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-sourceregion SourceRegion *string `json:"SourceRegion,omitempty"` // StorageEncrypted AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-storageencrypted + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-storageencrypted StorageEncrypted *bool `json:"StorageEncrypted,omitempty"` // StorageType AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-storagetype + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-storagetype StorageType *string `json:"StorageType,omitempty"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-tags Tags *[]tags.Tag `json:"Tags,omitempty"` // Timezone AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-timezone + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-timezone Timezone *string `json:"Timezone,omitempty"` // UseDefaultProcessorFeatures AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-usedefaultprocessorfeatures + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-usedefaultprocessorfeatures UseDefaultProcessorFeatures *bool `json:"UseDefaultProcessorFeatures,omitempty"` // VPCSecurityGroups AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-vpcsecuritygroups + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-vpcsecuritygroups VPCSecurityGroups *[]string `json:"VPCSecurityGroups,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/rds/aws-rds-dbinstance_endpoint.go b/cloudformation/rds/aws-rds-dbinstance_endpoint.go new file mode 100644 index 0000000000..80996ceec4 --- /dev/null +++ b/cloudformation/rds/aws-rds-dbinstance_endpoint.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package rds + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// DBInstance_Endpoint AWS CloudFormation Resource (AWS::RDS::DBInstance.Endpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-endpoint.html +type DBInstance_Endpoint struct { + + // Address AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-endpoint.html#cfn-rds-dbinstance-endpoint-address + Address *string `json:"Address,omitempty"` + + // HostedZoneId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-endpoint.html#cfn-rds-dbinstance-endpoint-hostedzoneid + HostedZoneId *string `json:"HostedZoneId,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-endpoint.html#cfn-rds-dbinstance-endpoint-port + Port *string `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 *DBInstance_Endpoint) AWSCloudFormationType() string { + return "AWS::RDS::DBInstance.Endpoint" +} diff --git a/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go b/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go index 77563105bc..4719f11342 100644 --- a/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go +++ b/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go @@ -10,21 +10,6 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html type ScheduledAction_ScheduledActionType struct { - // PauseCluster AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html#cfn-redshift-scheduledaction-scheduledactiontype-pausecluster - PauseCluster *ScheduledAction_PauseClusterMessage `json:"PauseCluster,omitempty"` - - // ResizeCluster AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html#cfn-redshift-scheduledaction-scheduledactiontype-resizecluster - ResizeCluster *ScheduledAction_ResizeClusterMessage `json:"ResizeCluster,omitempty"` - - // ResumeCluster AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html#cfn-redshift-scheduledaction-scheduledactiontype-resumecluster - ResumeCluster *ScheduledAction_ResumeClusterMessage `json:"ResumeCluster,omitempty"` - // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/schema/cdk.go b/schema/cdk.go index 0257044d6a..474ada9c82 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -42113,6 +42113,9 @@ var CdkSchema = `{ "AutoImport": { "type": "boolean" }, + "AwsService": { + "type": "string" + }, "Description": { "type": "string" }, @@ -60947,7 +60950,7 @@ var CdkSchema = `{ "type": "boolean" }, "SecurityServicePolicyData": { - "type": "object" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" }, "Tags": { "items": { @@ -61004,6 +61007,30 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, "AWS::FMS::Policy.PolicyTag": { "additionalProperties": false, "properties": { @@ -61035,6 +61062,36 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -95340,6 +95397,148 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::MSK::ServerlessCluster": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -113408,9 +113607,6 @@ var CdkSchema = `{ "type": "array" } }, - "required": [ - "DBInstanceClass" - ], "type": "object" }, "Type": { @@ -113429,8 +113625,7 @@ var CdkSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113450,6 +113645,21 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.ProcessorFeature": { "additionalProperties": false, "properties": { @@ -115494,67 +115704,9 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::Redshift::ScheduledAction.PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "number" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, "AWS::Redshift::ScheduledAction.ScheduledActionType": { "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" - }, - "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" - }, - "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" - } - }, + "properties": {}, "type": "object" }, "AWS::RedshiftServerless::Namespace": { @@ -142552,6 +142704,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::MSK::Configuration" }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 1f7156e49e..e2b484e5f9 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -42108,6 +42108,9 @@ "AutoImport": { "type": "boolean" }, + "AwsService": { + "type": "string" + }, "Description": { "type": "string" }, @@ -60942,7 +60945,7 @@ "type": "boolean" }, "SecurityServicePolicyData": { - "type": "object" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" }, "Tags": { "items": { @@ -60999,6 +61002,30 @@ }, "type": "object" }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, "AWS::FMS::Policy.PolicyTag": { "additionalProperties": false, "properties": { @@ -61030,6 +61057,36 @@ ], "type": "object" }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -95335,6 +95392,148 @@ ], "type": "object" }, + "AWS::MSK::ServerlessCluster": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -113403,9 +113602,6 @@ "type": "array" } }, - "required": [ - "DBInstanceClass" - ], "type": "object" }, "Type": { @@ -113424,8 +113620,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113445,6 +113640,21 @@ ], "type": "object" }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.ProcessorFeature": { "additionalProperties": false, "properties": { @@ -115489,67 +115699,9 @@ ], "type": "object" }, - "AWS::Redshift::ScheduledAction.PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "number" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, "AWS::Redshift::ScheduledAction.ScheduledActionType": { "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" - }, - "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" - }, - "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" - } - }, + "properties": {}, "type": "object" }, "AWS::RedshiftServerless::Namespace": { @@ -142547,6 +142699,9 @@ { "$ref": "#/definitions/AWS::MSK::Configuration" }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index c88a41d322..9c83f510d2 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -42052,6 +42052,9 @@ var CloudformationSchema = `{ "AutoImport": { "type": "boolean" }, + "AwsService": { + "type": "string" + }, "Description": { "type": "string" }, @@ -60886,7 +60889,7 @@ var CloudformationSchema = `{ "type": "boolean" }, "SecurityServicePolicyData": { - "type": "object" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" }, "Tags": { "items": { @@ -60943,6 +60946,30 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, "AWS::FMS::Policy.PolicyTag": { "additionalProperties": false, "properties": { @@ -60974,6 +61001,36 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -95279,6 +95336,148 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::MSK::ServerlessCluster": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -113347,9 +113546,6 @@ var CloudformationSchema = `{ "type": "array" } }, - "required": [ - "DBInstanceClass" - ], "type": "object" }, "Type": { @@ -113368,8 +113564,7 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113389,6 +113584,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.ProcessorFeature": { "additionalProperties": false, "properties": { @@ -115433,67 +115643,9 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Redshift::ScheduledAction.PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "number" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, "AWS::Redshift::ScheduledAction.ScheduledActionType": { "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" - }, - "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" - }, - "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" - } - }, + "properties": {}, "type": "object" }, "AWS::RedshiftServerless::Namespace": { @@ -142488,6 +142640,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::MSK::Configuration" }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index c19db3fbec..72bc6cacfd 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -42047,6 +42047,9 @@ "AutoImport": { "type": "boolean" }, + "AwsService": { + "type": "string" + }, "Description": { "type": "string" }, @@ -60881,7 +60884,7 @@ "type": "boolean" }, "SecurityServicePolicyData": { - "type": "object" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" }, "Tags": { "items": { @@ -60938,6 +60941,30 @@ }, "type": "object" }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, "AWS::FMS::Policy.PolicyTag": { "additionalProperties": false, "properties": { @@ -60969,6 +60996,36 @@ ], "type": "object" }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -95274,6 +95331,148 @@ ], "type": "object" }, + "AWS::MSK::ServerlessCluster": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -113342,9 +113541,6 @@ "type": "array" } }, - "required": [ - "DBInstanceClass" - ], "type": "object" }, "Type": { @@ -113363,8 +113559,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113384,6 +113579,21 @@ ], "type": "object" }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.ProcessorFeature": { "additionalProperties": false, "properties": { @@ -115428,67 +115638,9 @@ ], "type": "object" }, - "AWS::Redshift::ScheduledAction.PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "number" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, "AWS::Redshift::ScheduledAction.ScheduledActionType": { "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" - }, - "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" - }, - "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" - } - }, + "properties": {}, "type": "object" }, "AWS::RedshiftServerless::Namespace": { @@ -142483,6 +142635,9 @@ { "$ref": "#/definitions/AWS::MSK::Configuration" }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/sam.go b/schema/sam.go index 2e15afe33c..1ad2e25de1 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -42052,6 +42052,9 @@ var SamSchema = `{ "AutoImport": { "type": "boolean" }, + "AwsService": { + "type": "string" + }, "Description": { "type": "string" }, @@ -60886,7 +60889,7 @@ var SamSchema = `{ "type": "boolean" }, "SecurityServicePolicyData": { - "type": "object" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" }, "Tags": { "items": { @@ -60943,6 +60946,30 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, "AWS::FMS::Policy.PolicyTag": { "additionalProperties": false, "properties": { @@ -60974,6 +61001,36 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -95279,6 +95336,148 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::MSK::ServerlessCluster": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -113347,9 +113546,6 @@ var SamSchema = `{ "type": "array" } }, - "required": [ - "DBInstanceClass" - ], "type": "object" }, "Type": { @@ -113368,8 +113564,7 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113389,6 +113584,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.ProcessorFeature": { "additionalProperties": false, "properties": { @@ -115433,67 +115643,9 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Redshift::ScheduledAction.PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "number" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, "AWS::Redshift::ScheduledAction.ScheduledActionType": { "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" - }, - "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" - }, - "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" - } - }, + "properties": {}, "type": "object" }, "AWS::RedshiftServerless::Namespace": { @@ -145369,6 +145521,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::MSK::Configuration" }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 0a17f922f9..bf1ceaf156 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -42047,6 +42047,9 @@ "AutoImport": { "type": "boolean" }, + "AwsService": { + "type": "string" + }, "Description": { "type": "string" }, @@ -60881,7 +60884,7 @@ "type": "boolean" }, "SecurityServicePolicyData": { - "type": "object" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" }, "Tags": { "items": { @@ -60938,6 +60941,30 @@ }, "type": "object" }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, "AWS::FMS::Policy.PolicyTag": { "additionalProperties": false, "properties": { @@ -60969,6 +60996,36 @@ ], "type": "object" }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -95274,6 +95331,148 @@ ], "type": "object" }, + "AWS::MSK::ServerlessCluster": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -113342,9 +113541,6 @@ "type": "array" } }, - "required": [ - "DBInstanceClass" - ], "type": "object" }, "Type": { @@ -113363,8 +113559,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113384,6 +113579,21 @@ ], "type": "object" }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.ProcessorFeature": { "additionalProperties": false, "properties": { @@ -115428,67 +115638,9 @@ ], "type": "object" }, - "AWS::Redshift::ScheduledAction.PauseClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { - "additionalProperties": false, - "properties": { - "Classic": { - "type": "boolean" - }, - "ClusterIdentifier": { - "type": "string" - }, - "ClusterType": { - "type": "string" - }, - "NodeType": { - "type": "string" - }, - "NumberOfNodes": { - "type": "number" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, - "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { - "additionalProperties": false, - "properties": { - "ClusterIdentifier": { - "type": "string" - } - }, - "required": [ - "ClusterIdentifier" - ], - "type": "object" - }, "AWS::Redshift::ScheduledAction.ScheduledActionType": { "additionalProperties": false, - "properties": { - "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" - }, - "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" - }, - "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" - } - }, + "properties": {}, "type": "object" }, "AWS::RedshiftServerless::Namespace": { @@ -145364,6 +145516,9 @@ { "$ref": "#/definitions/AWS::MSK::Configuration" }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" },