diff --git a/cloudformation/all.go b/cloudformation/all.go index 1f66536bad..1fc90521ef 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -43,6 +43,7 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/codestarnotifications" "github.com/awslabs/goformation/v4/cloudformation/cognito" "github.com/awslabs/goformation/v4/cloudformation/config" + "github.com/awslabs/goformation/v4/cloudformation/databrew" "github.com/awslabs/goformation/v4/cloudformation/datapipeline" "github.com/awslabs/goformation/v4/cloudformation/dax" "github.com/awslabs/goformation/v4/cloudformation/detective" @@ -98,6 +99,7 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/mediastore" "github.com/awslabs/goformation/v4/cloudformation/msk" "github.com/awslabs/goformation/v4/cloudformation/neptune" + "github.com/awslabs/goformation/v4/cloudformation/networkfirewall" "github.com/awslabs/goformation/v4/cloudformation/networkmanager" "github.com/awslabs/goformation/v4/cloudformation/opsworks" "github.com/awslabs/goformation/v4/cloudformation/opsworkscm" @@ -120,6 +122,7 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/servicecatalog" "github.com/awslabs/goformation/v4/cloudformation/servicediscovery" "github.com/awslabs/goformation/v4/cloudformation/ses" + "github.com/awslabs/goformation/v4/cloudformation/signer" "github.com/awslabs/goformation/v4/cloudformation/sns" "github.com/awslabs/goformation/v4/cloudformation/sqs" "github.com/awslabs/goformation/v4/cloudformation/ssm" @@ -242,7 +245,9 @@ func AllResources() map[string]Resource { "AWS::CloudFront::CachePolicy": &cloudfront.CachePolicy{}, "AWS::CloudFront::CloudFrontOriginAccessIdentity": &cloudfront.CloudFrontOriginAccessIdentity{}, "AWS::CloudFront::Distribution": &cloudfront.Distribution{}, + "AWS::CloudFront::KeyGroup": &cloudfront.KeyGroup{}, "AWS::CloudFront::OriginRequestPolicy": &cloudfront.OriginRequestPolicy{}, + "AWS::CloudFront::PublicKey": &cloudfront.PublicKey{}, "AWS::CloudFront::RealtimeLogConfig": &cloudfront.RealtimeLogConfig{}, "AWS::CloudFront::StreamingDistribution": &cloudfront.StreamingDistribution{}, "AWS::CloudTrail::Trail": &cloudtrail.Trail{}, @@ -300,6 +305,11 @@ func AllResources() map[string]Resource { "AWS::DMS::ReplicationInstance": &dms.ReplicationInstance{}, "AWS::DMS::ReplicationSubnetGroup": &dms.ReplicationSubnetGroup{}, "AWS::DMS::ReplicationTask": &dms.ReplicationTask{}, + "AWS::DataBrew::Dataset": &databrew.Dataset{}, + "AWS::DataBrew::Job": &databrew.Job{}, + "AWS::DataBrew::Project": &databrew.Project{}, + "AWS::DataBrew::Recipe": &databrew.Recipe{}, + "AWS::DataBrew::Schedule": &databrew.Schedule{}, "AWS::DataPipeline::Pipeline": &datapipeline.Pipeline{}, "AWS::Detective::Graph": &detective.Graph{}, "AWS::Detective::MemberInvitation": &detective.MemberInvitation{}, @@ -439,6 +449,10 @@ func AllResources() map[string]Resource { "AWS::Glue::Job": &glue.Job{}, "AWS::Glue::MLTransform": &glue.MLTransform{}, "AWS::Glue::Partition": &glue.Partition{}, + "AWS::Glue::Registry": &glue.Registry{}, + "AWS::Glue::Schema": &glue.Schema{}, + "AWS::Glue::SchemaVersion": &glue.SchemaVersion{}, + "AWS::Glue::SchemaVersionMetadata": &glue.SchemaVersionMetadata{}, "AWS::Glue::SecurityConfiguration": &glue.SecurityConfiguration{}, "AWS::Glue::Table": &glue.Table{}, "AWS::Glue::Trigger": &glue.Trigger{}, @@ -498,6 +512,7 @@ func AllResources() map[string]Resource { "AWS::IoT::Thing": &iot.Thing{}, "AWS::IoT::ThingPrincipalAttachment": &iot.ThingPrincipalAttachment{}, "AWS::IoT::TopicRule": &iot.TopicRule{}, + "AWS::IoT::TopicRuleDestination": &iot.TopicRuleDestination{}, "AWS::IoTAnalytics::Channel": &iotanalytics.Channel{}, "AWS::IoTAnalytics::Dataset": &iotanalytics.Dataset{}, "AWS::IoTAnalytics::Datastore": &iotanalytics.Datastore{}, @@ -527,6 +542,7 @@ func AllResources() map[string]Resource { "AWS::LakeFormation::Permissions": &lakeformation.Permissions{}, "AWS::LakeFormation::Resource": &lakeformation.Resource{}, "AWS::Lambda::Alias": &lambda.Alias{}, + "AWS::Lambda::CodeSigningConfig": &lambda.CodeSigningConfig{}, "AWS::Lambda::EventInvokeConfig": &lambda.EventInvokeConfig{}, "AWS::Lambda::EventSourceMapping": &lambda.EventSourceMapping{}, "AWS::Lambda::Function": &lambda.Function{}, @@ -562,6 +578,10 @@ func AllResources() map[string]Resource { "AWS::Neptune::DBInstance": &neptune.DBInstance{}, "AWS::Neptune::DBParameterGroup": &neptune.DBParameterGroup{}, "AWS::Neptune::DBSubnetGroup": &neptune.DBSubnetGroup{}, + "AWS::NetworkFirewall::Firewall": &networkfirewall.Firewall{}, + "AWS::NetworkFirewall::FirewallPolicy": &networkfirewall.FirewallPolicy{}, + "AWS::NetworkFirewall::LoggingConfiguration": &networkfirewall.LoggingConfiguration{}, + "AWS::NetworkFirewall::RuleGroup": &networkfirewall.RuleGroup{}, "AWS::NetworkManager::CustomerGatewayAssociation": &networkmanager.CustomerGatewayAssociation{}, "AWS::NetworkManager::Device": &networkmanager.Device{}, "AWS::NetworkManager::GlobalNetwork": &networkmanager.GlobalNetwork{}, @@ -638,6 +658,7 @@ func AllResources() map[string]Resource { "AWS::S3::AccessPoint": &s3.AccessPoint{}, "AWS::S3::Bucket": &s3.Bucket{}, "AWS::S3::BucketPolicy": &s3.BucketPolicy{}, + "AWS::S3::StorageLens": &s3.StorageLens{}, "AWS::SDB::Domain": &sdb.Domain{}, "AWS::SES::ConfigurationSet": &ses.ConfigurationSet{}, "AWS::SES::ConfigurationSetEventDestination": &ses.ConfigurationSetEventDestination{}, @@ -698,6 +719,8 @@ func AllResources() map[string]Resource { "AWS::ServiceDiscovery::PrivateDnsNamespace": &servicediscovery.PrivateDnsNamespace{}, "AWS::ServiceDiscovery::PublicDnsNamespace": &servicediscovery.PublicDnsNamespace{}, "AWS::ServiceDiscovery::Service": &servicediscovery.Service{}, + "AWS::Signer::ProfilePermission": &signer.ProfilePermission{}, + "AWS::Signer::SigningProfile": &signer.SigningProfile{}, "AWS::StepFunctions::Activity": &stepfunctions.Activity{}, "AWS::StepFunctions::StateMachine": &stepfunctions.StateMachine{}, "AWS::Synthetics::Canary": &synthetics.Canary{}, @@ -3254,6 +3277,30 @@ func (t *Template) GetCloudFrontDistributionWithName(name string) (*cloudfront.D return nil, fmt.Errorf("resource %q of type cloudfront.Distribution not found", name) } +// GetAllCloudFrontKeyGroupResources retrieves all cloudfront.KeyGroup items from an AWS CloudFormation template +func (t *Template) GetAllCloudFrontKeyGroupResources() map[string]*cloudfront.KeyGroup { + results := map[string]*cloudfront.KeyGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudfront.KeyGroup: + results[name] = resource + } + } + return results +} + +// GetCloudFrontKeyGroupWithName retrieves all cloudfront.KeyGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFrontKeyGroupWithName(name string) (*cloudfront.KeyGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudfront.KeyGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudfront.KeyGroup not found", name) +} + // GetAllCloudFrontOriginRequestPolicyResources retrieves all cloudfront.OriginRequestPolicy items from an AWS CloudFormation template func (t *Template) GetAllCloudFrontOriginRequestPolicyResources() map[string]*cloudfront.OriginRequestPolicy { results := map[string]*cloudfront.OriginRequestPolicy{} @@ -3278,6 +3325,30 @@ func (t *Template) GetCloudFrontOriginRequestPolicyWithName(name string) (*cloud return nil, fmt.Errorf("resource %q of type cloudfront.OriginRequestPolicy not found", name) } +// GetAllCloudFrontPublicKeyResources retrieves all cloudfront.PublicKey items from an AWS CloudFormation template +func (t *Template) GetAllCloudFrontPublicKeyResources() map[string]*cloudfront.PublicKey { + results := map[string]*cloudfront.PublicKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudfront.PublicKey: + results[name] = resource + } + } + return results +} + +// GetCloudFrontPublicKeyWithName retrieves all cloudfront.PublicKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFrontPublicKeyWithName(name string) (*cloudfront.PublicKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudfront.PublicKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudfront.PublicKey not found", name) +} + // GetAllCloudFrontRealtimeLogConfigResources retrieves all cloudfront.RealtimeLogConfig items from an AWS CloudFormation template func (t *Template) GetAllCloudFrontRealtimeLogConfigResources() map[string]*cloudfront.RealtimeLogConfig { results := map[string]*cloudfront.RealtimeLogConfig{} @@ -4646,6 +4717,126 @@ func (t *Template) GetDMSReplicationTaskWithName(name string) (*dms.ReplicationT return nil, fmt.Errorf("resource %q of type dms.ReplicationTask not found", name) } +// GetAllDataBrewDatasetResources retrieves all databrew.Dataset items from an AWS CloudFormation template +func (t *Template) GetAllDataBrewDatasetResources() map[string]*databrew.Dataset { + results := map[string]*databrew.Dataset{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *databrew.Dataset: + results[name] = resource + } + } + return results +} + +// GetDataBrewDatasetWithName retrieves all databrew.Dataset items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetDataBrewDatasetWithName(name string) (*databrew.Dataset, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *databrew.Dataset: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type databrew.Dataset not found", name) +} + +// GetAllDataBrewJobResources retrieves all databrew.Job items from an AWS CloudFormation template +func (t *Template) GetAllDataBrewJobResources() map[string]*databrew.Job { + results := map[string]*databrew.Job{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *databrew.Job: + results[name] = resource + } + } + return results +} + +// GetDataBrewJobWithName retrieves all databrew.Job items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetDataBrewJobWithName(name string) (*databrew.Job, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *databrew.Job: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type databrew.Job not found", name) +} + +// GetAllDataBrewProjectResources retrieves all databrew.Project items from an AWS CloudFormation template +func (t *Template) GetAllDataBrewProjectResources() map[string]*databrew.Project { + results := map[string]*databrew.Project{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *databrew.Project: + results[name] = resource + } + } + return results +} + +// GetDataBrewProjectWithName retrieves all databrew.Project items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetDataBrewProjectWithName(name string) (*databrew.Project, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *databrew.Project: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type databrew.Project not found", name) +} + +// GetAllDataBrewRecipeResources retrieves all databrew.Recipe items from an AWS CloudFormation template +func (t *Template) GetAllDataBrewRecipeResources() map[string]*databrew.Recipe { + results := map[string]*databrew.Recipe{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *databrew.Recipe: + results[name] = resource + } + } + return results +} + +// GetDataBrewRecipeWithName retrieves all databrew.Recipe items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetDataBrewRecipeWithName(name string) (*databrew.Recipe, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *databrew.Recipe: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type databrew.Recipe not found", name) +} + +// GetAllDataBrewScheduleResources retrieves all databrew.Schedule items from an AWS CloudFormation template +func (t *Template) GetAllDataBrewScheduleResources() map[string]*databrew.Schedule { + results := map[string]*databrew.Schedule{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *databrew.Schedule: + results[name] = resource + } + } + return results +} + +// GetDataBrewScheduleWithName retrieves all databrew.Schedule items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetDataBrewScheduleWithName(name string) (*databrew.Schedule, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *databrew.Schedule: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type databrew.Schedule not found", name) +} + // GetAllDataPipelinePipelineResources retrieves all datapipeline.Pipeline items from an AWS CloudFormation template func (t *Template) GetAllDataPipelinePipelineResources() map[string]*datapipeline.Pipeline { results := map[string]*datapipeline.Pipeline{} @@ -7982,6 +8173,102 @@ func (t *Template) GetGluePartitionWithName(name string) (*glue.Partition, error return nil, fmt.Errorf("resource %q of type glue.Partition not found", name) } +// GetAllGlueRegistryResources retrieves all glue.Registry items from an AWS CloudFormation template +func (t *Template) GetAllGlueRegistryResources() map[string]*glue.Registry { + results := map[string]*glue.Registry{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *glue.Registry: + results[name] = resource + } + } + return results +} + +// GetGlueRegistryWithName retrieves all glue.Registry items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetGlueRegistryWithName(name string) (*glue.Registry, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *glue.Registry: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type glue.Registry not found", name) +} + +// GetAllGlueSchemaResources retrieves all glue.Schema items from an AWS CloudFormation template +func (t *Template) GetAllGlueSchemaResources() map[string]*glue.Schema { + results := map[string]*glue.Schema{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *glue.Schema: + results[name] = resource + } + } + return results +} + +// GetGlueSchemaWithName retrieves all glue.Schema items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetGlueSchemaWithName(name string) (*glue.Schema, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *glue.Schema: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type glue.Schema not found", name) +} + +// GetAllGlueSchemaVersionResources retrieves all glue.SchemaVersion items from an AWS CloudFormation template +func (t *Template) GetAllGlueSchemaVersionResources() map[string]*glue.SchemaVersion { + results := map[string]*glue.SchemaVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *glue.SchemaVersion: + results[name] = resource + } + } + return results +} + +// GetGlueSchemaVersionWithName retrieves all glue.SchemaVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetGlueSchemaVersionWithName(name string) (*glue.SchemaVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *glue.SchemaVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type glue.SchemaVersion not found", name) +} + +// GetAllGlueSchemaVersionMetadataResources retrieves all glue.SchemaVersionMetadata items from an AWS CloudFormation template +func (t *Template) GetAllGlueSchemaVersionMetadataResources() map[string]*glue.SchemaVersionMetadata { + results := map[string]*glue.SchemaVersionMetadata{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *glue.SchemaVersionMetadata: + results[name] = resource + } + } + return results +} + +// GetGlueSchemaVersionMetadataWithName retrieves all glue.SchemaVersionMetadata items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetGlueSchemaVersionMetadataWithName(name string) (*glue.SchemaVersionMetadata, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *glue.SchemaVersionMetadata: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type glue.SchemaVersionMetadata not found", name) +} + // GetAllGlueSecurityConfigurationResources retrieves all glue.SecurityConfiguration items from an AWS CloudFormation template func (t *Template) GetAllGlueSecurityConfigurationResources() map[string]*glue.SecurityConfiguration { results := map[string]*glue.SecurityConfiguration{} @@ -9398,6 +9685,30 @@ func (t *Template) GetIoTTopicRuleWithName(name string) (*iot.TopicRule, error) return nil, fmt.Errorf("resource %q of type iot.TopicRule not found", name) } +// GetAllIoTTopicRuleDestinationResources retrieves all iot.TopicRuleDestination items from an AWS CloudFormation template +func (t *Template) GetAllIoTTopicRuleDestinationResources() map[string]*iot.TopicRuleDestination { + results := map[string]*iot.TopicRuleDestination{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.TopicRuleDestination: + results[name] = resource + } + } + return results +} + +// GetIoTTopicRuleDestinationWithName retrieves all iot.TopicRuleDestination items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTTopicRuleDestinationWithName(name string) (*iot.TopicRuleDestination, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.TopicRuleDestination: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.TopicRuleDestination not found", name) +} + // GetAllIoTAnalyticsChannelResources retrieves all iotanalytics.Channel items from an AWS CloudFormation template func (t *Template) GetAllIoTAnalyticsChannelResources() map[string]*iotanalytics.Channel { results := map[string]*iotanalytics.Channel{} @@ -10094,6 +10405,30 @@ func (t *Template) GetLambdaAliasWithName(name string) (*lambda.Alias, error) { return nil, fmt.Errorf("resource %q of type lambda.Alias not found", name) } +// GetAllLambdaCodeSigningConfigResources retrieves all lambda.CodeSigningConfig items from an AWS CloudFormation template +func (t *Template) GetAllLambdaCodeSigningConfigResources() map[string]*lambda.CodeSigningConfig { + results := map[string]*lambda.CodeSigningConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *lambda.CodeSigningConfig: + results[name] = resource + } + } + return results +} + +// GetLambdaCodeSigningConfigWithName retrieves all lambda.CodeSigningConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLambdaCodeSigningConfigWithName(name string) (*lambda.CodeSigningConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *lambda.CodeSigningConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type lambda.CodeSigningConfig not found", name) +} + // GetAllLambdaEventInvokeConfigResources retrieves all lambda.EventInvokeConfig items from an AWS CloudFormation template func (t *Template) GetAllLambdaEventInvokeConfigResources() map[string]*lambda.EventInvokeConfig { results := map[string]*lambda.EventInvokeConfig{} @@ -10934,6 +11269,102 @@ func (t *Template) GetNeptuneDBSubnetGroupWithName(name string) (*neptune.DBSubn return nil, fmt.Errorf("resource %q of type neptune.DBSubnetGroup not found", name) } +// GetAllNetworkFirewallFirewallResources retrieves all networkfirewall.Firewall items from an AWS CloudFormation template +func (t *Template) GetAllNetworkFirewallFirewallResources() map[string]*networkfirewall.Firewall { + results := map[string]*networkfirewall.Firewall{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *networkfirewall.Firewall: + results[name] = resource + } + } + return results +} + +// GetNetworkFirewallFirewallWithName retrieves all networkfirewall.Firewall items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetNetworkFirewallFirewallWithName(name string) (*networkfirewall.Firewall, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *networkfirewall.Firewall: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type networkfirewall.Firewall not found", name) +} + +// GetAllNetworkFirewallFirewallPolicyResources retrieves all networkfirewall.FirewallPolicy items from an AWS CloudFormation template +func (t *Template) GetAllNetworkFirewallFirewallPolicyResources() map[string]*networkfirewall.FirewallPolicy { + results := map[string]*networkfirewall.FirewallPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *networkfirewall.FirewallPolicy: + results[name] = resource + } + } + return results +} + +// GetNetworkFirewallFirewallPolicyWithName retrieves all networkfirewall.FirewallPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetNetworkFirewallFirewallPolicyWithName(name string) (*networkfirewall.FirewallPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *networkfirewall.FirewallPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type networkfirewall.FirewallPolicy not found", name) +} + +// GetAllNetworkFirewallLoggingConfigurationResources retrieves all networkfirewall.LoggingConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllNetworkFirewallLoggingConfigurationResources() map[string]*networkfirewall.LoggingConfiguration { + results := map[string]*networkfirewall.LoggingConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *networkfirewall.LoggingConfiguration: + results[name] = resource + } + } + return results +} + +// GetNetworkFirewallLoggingConfigurationWithName retrieves all networkfirewall.LoggingConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetNetworkFirewallLoggingConfigurationWithName(name string) (*networkfirewall.LoggingConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *networkfirewall.LoggingConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type networkfirewall.LoggingConfiguration not found", name) +} + +// GetAllNetworkFirewallRuleGroupResources retrieves all networkfirewall.RuleGroup items from an AWS CloudFormation template +func (t *Template) GetAllNetworkFirewallRuleGroupResources() map[string]*networkfirewall.RuleGroup { + results := map[string]*networkfirewall.RuleGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *networkfirewall.RuleGroup: + results[name] = resource + } + } + return results +} + +// GetNetworkFirewallRuleGroupWithName retrieves all networkfirewall.RuleGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetNetworkFirewallRuleGroupWithName(name string) (*networkfirewall.RuleGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *networkfirewall.RuleGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type networkfirewall.RuleGroup not found", name) +} + // GetAllNetworkManagerCustomerGatewayAssociationResources retrieves all networkmanager.CustomerGatewayAssociation items from an AWS CloudFormation template func (t *Template) GetAllNetworkManagerCustomerGatewayAssociationResources() map[string]*networkmanager.CustomerGatewayAssociation { results := map[string]*networkmanager.CustomerGatewayAssociation{} @@ -12758,6 +13189,30 @@ func (t *Template) GetS3BucketPolicyWithName(name string) (*s3.BucketPolicy, err return nil, fmt.Errorf("resource %q of type s3.BucketPolicy not found", name) } +// GetAllS3StorageLensResources retrieves all s3.StorageLens items from an AWS CloudFormation template +func (t *Template) GetAllS3StorageLensResources() map[string]*s3.StorageLens { + results := map[string]*s3.StorageLens{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *s3.StorageLens: + results[name] = resource + } + } + return results +} + +// GetS3StorageLensWithName retrieves all s3.StorageLens items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetS3StorageLensWithName(name string) (*s3.StorageLens, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *s3.StorageLens: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type s3.StorageLens not found", name) +} + // GetAllSDBDomainResources retrieves all sdb.Domain items from an AWS CloudFormation template func (t *Template) GetAllSDBDomainResources() map[string]*sdb.Domain { results := map[string]*sdb.Domain{} @@ -14198,6 +14653,54 @@ func (t *Template) GetServiceDiscoveryServiceWithName(name string) (*servicedisc return nil, fmt.Errorf("resource %q of type servicediscovery.Service not found", name) } +// GetAllSignerProfilePermissionResources retrieves all signer.ProfilePermission items from an AWS CloudFormation template +func (t *Template) GetAllSignerProfilePermissionResources() map[string]*signer.ProfilePermission { + results := map[string]*signer.ProfilePermission{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *signer.ProfilePermission: + results[name] = resource + } + } + return results +} + +// GetSignerProfilePermissionWithName retrieves all signer.ProfilePermission items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSignerProfilePermissionWithName(name string) (*signer.ProfilePermission, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *signer.ProfilePermission: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type signer.ProfilePermission not found", name) +} + +// GetAllSignerSigningProfileResources retrieves all signer.SigningProfile items from an AWS CloudFormation template +func (t *Template) GetAllSignerSigningProfileResources() map[string]*signer.SigningProfile { + results := map[string]*signer.SigningProfile{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *signer.SigningProfile: + results[name] = resource + } + } + return results +} + +// GetSignerSigningProfileWithName retrieves all signer.SigningProfile items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSignerSigningProfileWithName(name string) (*signer.SigningProfile, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *signer.SigningProfile: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type signer.SigningProfile not found", name) +} + // GetAllStepFunctionsActivityResources retrieves all stepfunctions.Activity items from an AWS CloudFormation template func (t *Template) GetAllStepFunctionsActivityResources() map[string]*stepfunctions.Activity { results := map[string]*stepfunctions.Activity{} diff --git a/cloudformation/amplify/aws-amplify-app.go b/cloudformation/amplify/aws-amplify-app.go index d14060470d..909e53ebc7 100644 --- a/cloudformation/amplify/aws-amplify-app.go +++ b/cloudformation/amplify/aws-amplify-app.go @@ -33,6 +33,11 @@ type App struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-buildspec BuildSpec string `json:"BuildSpec,omitempty"` + // CustomHeaders AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-customheaders + CustomHeaders string `json:"CustomHeaders,omitempty"` + // CustomRules AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-customrules diff --git a/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go b/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go index 21e668938f..d6982ad9da 100644 --- a/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go +++ b/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go @@ -13,6 +13,11 @@ type ConnectorProfile_SalesforceConnectorProfileCredentials struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-accesstoken AccessToken string `json:"AccessToken,omitempty"` + // ClientCredentialsArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-clientcredentialsarn + ClientCredentialsArn string `json:"ClientCredentialsArn,omitempty"` + // ConnectorOAuthRequest AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-connectoroauthrequest diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayconnectionpool.go new file mode 100644 index 0000000000..438d206659 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayconnectionpool.go @@ -0,0 +1,45 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualGateway_VirtualGatewayConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html +type VirtualGateway_VirtualGatewayConnectionPool struct { + + // GRPC AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-grpc + GRPC *VirtualGateway_VirtualGatewayGrpcConnectionPool `json:"GRPC,omitempty"` + + // HTTP AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-http + HTTP *VirtualGateway_VirtualGatewayHttpConnectionPool `json:"HTTP,omitempty"` + + // HTTP2 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-http2 + HTTP2 *VirtualGateway_VirtualGatewayHttp2ConnectionPool `json:"HTTP2,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualGateway_VirtualGatewayConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaygrpcconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaygrpcconnectionpool.go new file mode 100644 index 0000000000..2724b92e9c --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaygrpcconnectionpool.go @@ -0,0 +1,35 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualGateway_VirtualGatewayGrpcConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html +type VirtualGateway_VirtualGatewayGrpcConnectionPool struct { + + // MaxRequests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool-maxrequests + MaxRequests int `json:"MaxRequests"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualGateway_VirtualGatewayGrpcConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttp2connectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttp2connectionpool.go new file mode 100644 index 0000000000..19a72c22bd --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttp2connectionpool.go @@ -0,0 +1,35 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualGateway_VirtualGatewayHttp2ConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html +type VirtualGateway_VirtualGatewayHttp2ConnectionPool struct { + + // MaxRequests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayhttp2connectionpool-maxrequests + MaxRequests int `json:"MaxRequests"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualGateway_VirtualGatewayHttp2ConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttpconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttpconnectionpool.go new file mode 100644 index 0000000000..84a934d202 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttpconnectionpool.go @@ -0,0 +1,40 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualGateway_VirtualGatewayHttpConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html +type VirtualGateway_VirtualGatewayHttpConnectionPool struct { + + // MaxConnections AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayhttpconnectionpool-maxconnections + MaxConnections int `json:"MaxConnections"` + + // MaxPendingRequests AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayhttpconnectionpool-maxpendingrequests + MaxPendingRequests int `json:"MaxPendingRequests,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualGateway_VirtualGatewayHttpConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go index 22dfa37c88..321d01c172 100644 --- a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html type VirtualGateway_VirtualGatewayListener struct { + // ConnectionPool AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html#cfn-appmesh-virtualgateway-virtualgatewaylistener-connectionpool + ConnectionPool *VirtualGateway_VirtualGatewayConnectionPool `json:"ConnectionPool,omitempty"` + // HealthCheck AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html#cfn-appmesh-virtualgateway-virtualgatewaylistener-healthcheck diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go b/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go index 1860d884e5..73c6108282 100644 --- a/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go @@ -8,11 +8,21 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html type VirtualNode_Listener struct { + // ConnectionPool AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-connectionpool + ConnectionPool *VirtualNode_VirtualNodeConnectionPool `json:"ConnectionPool,omitempty"` + // HealthCheck AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-healthcheck HealthCheck *VirtualNode_HealthCheck `json:"HealthCheck,omitempty"` + // OutlierDetection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-outlierdetection + OutlierDetection *VirtualNode_OutlierDetection `json:"OutlierDetection,omitempty"` + // PortMapping AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_outlierdetection.go b/cloudformation/appmesh/aws-appmesh-virtualnode_outlierdetection.go new file mode 100644 index 0000000000..69d465311d --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_outlierdetection.go @@ -0,0 +1,50 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualNode_OutlierDetection AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.OutlierDetection) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html +type VirtualNode_OutlierDetection struct { + + // BaseEjectionDuration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-baseejectionduration + BaseEjectionDuration *VirtualNode_Duration `json:"BaseEjectionDuration,omitempty"` + + // Interval AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-interval + Interval *VirtualNode_Duration `json:"Interval,omitempty"` + + // MaxEjectionPercent AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-maxejectionpercent + MaxEjectionPercent int `json:"MaxEjectionPercent"` + + // MaxServerErrors AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-maxservererrors + MaxServerErrors int `json:"MaxServerErrors"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualNode_OutlierDetection) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.OutlierDetection" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodeconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodeconnectionpool.go new file mode 100644 index 0000000000..ee33526eb3 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodeconnectionpool.go @@ -0,0 +1,50 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualNode_VirtualNodeConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html +type VirtualNode_VirtualNodeConnectionPool struct { + + // GRPC AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-grpc + GRPC *VirtualNode_VirtualNodeGrpcConnectionPool `json:"GRPC,omitempty"` + + // HTTP AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-http + HTTP *VirtualNode_VirtualNodeHttpConnectionPool `json:"HTTP,omitempty"` + + // HTTP2 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-http2 + HTTP2 *VirtualNode_VirtualNodeHttp2ConnectionPool `json:"HTTP2,omitempty"` + + // TCP AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-tcp + TCP *VirtualNode_VirtualNodeTcpConnectionPool `json:"TCP,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualNode_VirtualNodeConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodegrpcconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodegrpcconnectionpool.go new file mode 100644 index 0000000000..e24b0b2f49 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodegrpcconnectionpool.go @@ -0,0 +1,35 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualNode_VirtualNodeGrpcConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html +type VirtualNode_VirtualNodeGrpcConnectionPool struct { + + // MaxRequests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html#cfn-appmesh-virtualnode-virtualnodegrpcconnectionpool-maxrequests + MaxRequests int `json:"MaxRequests"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualNode_VirtualNodeGrpcConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttp2connectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttp2connectionpool.go new file mode 100644 index 0000000000..9c99401c97 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttp2connectionpool.go @@ -0,0 +1,35 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualNode_VirtualNodeHttp2ConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html +type VirtualNode_VirtualNodeHttp2ConnectionPool struct { + + // MaxRequests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html#cfn-appmesh-virtualnode-virtualnodehttp2connectionpool-maxrequests + MaxRequests int `json:"MaxRequests"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualNode_VirtualNodeHttp2ConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttpconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttpconnectionpool.go new file mode 100644 index 0000000000..ba2c7d18a2 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttpconnectionpool.go @@ -0,0 +1,40 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualNode_VirtualNodeHttpConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html +type VirtualNode_VirtualNodeHttpConnectionPool struct { + + // MaxConnections AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html#cfn-appmesh-virtualnode-virtualnodehttpconnectionpool-maxconnections + MaxConnections int `json:"MaxConnections"` + + // MaxPendingRequests AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html#cfn-appmesh-virtualnode-virtualnodehttpconnectionpool-maxpendingrequests + MaxPendingRequests int `json:"MaxPendingRequests,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualNode_VirtualNodeHttpConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodetcpconnectionpool.go b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodetcpconnectionpool.go new file mode 100644 index 0000000000..d175fbd340 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodetcpconnectionpool.go @@ -0,0 +1,35 @@ +package appmesh + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// VirtualNode_VirtualNodeTcpConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html +type VirtualNode_VirtualNodeTcpConnectionPool struct { + + // MaxConnections AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html#cfn-appmesh-virtualnode-virtualnodetcpconnectionpool-maxconnections + MaxConnections int `json:"MaxConnections"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *VirtualNode_VirtualNodeTcpConnectionPool) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" +} diff --git a/cloudformation/batch/aws-batch-computeenvironment_computeresources.go b/cloudformation/batch/aws-batch-computeenvironment_computeresources.go index 1cb371917a..2eda0f7077 100644 --- a/cloudformation/batch/aws-batch-computeenvironment_computeresources.go +++ b/cloudformation/batch/aws-batch-computeenvironment_computeresources.go @@ -23,6 +23,11 @@ type ComputeEnvironment_ComputeResources struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-desiredvcpus DesiredvCpus int `json:"DesiredvCpus,omitempty"` + // Ec2Configuration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration + Ec2Configuration []ComputeEnvironment_Ec2ConfigurationObject `json:"Ec2Configuration,omitempty"` + // Ec2KeyPair AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair diff --git a/cloudformation/batch/aws-batch-computeenvironment_ec2configurationobject.go b/cloudformation/batch/aws-batch-computeenvironment_ec2configurationobject.go new file mode 100644 index 0000000000..bad15c5430 --- /dev/null +++ b/cloudformation/batch/aws-batch-computeenvironment_ec2configurationobject.go @@ -0,0 +1,40 @@ +package batch + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// ComputeEnvironment_Ec2ConfigurationObject AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html +type ComputeEnvironment_Ec2ConfigurationObject struct { + + // ImageIdOverride AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html#cfn-batch-computeenvironment-ec2configurationobject-imageidoverride + ImageIdOverride string `json:"ImageIdOverride,omitempty"` + + // ImageType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html#cfn-batch-computeenvironment-ec2configurationobject-imagetype + ImageType string `json:"ImageType,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ComputeEnvironment_Ec2ConfigurationObject) AWSCloudFormationType() string { + return "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go b/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go index 996ec846fa..ae7cd6d967 100644 --- a/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go @@ -83,6 +83,11 @@ type Distribution_CacheBehavior struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-targetoriginid TargetOriginId string `json:"TargetOriginId,omitempty"` + // TrustedKeyGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-trustedkeygroups + TrustedKeyGroups []string `json:"TrustedKeyGroups,omitempty"` + // TrustedSigners AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-trustedsigners diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go b/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go index d88b52a869..bad698a116 100644 --- a/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go @@ -78,6 +78,11 @@ type Distribution_DefaultCacheBehavior struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-targetoriginid TargetOriginId string `json:"TargetOriginId,omitempty"` + // TrustedKeyGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-trustedkeygroups + TrustedKeyGroups []string `json:"TrustedKeyGroups,omitempty"` + // TrustedSigners AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-trustedsigners diff --git a/cloudformation/cloudfront/aws-cloudfront-keygroup.go b/cloudformation/cloudfront/aws-cloudfront-keygroup.go new file mode 100644 index 0000000000..92b2ca2396 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-keygroup.go @@ -0,0 +1,106 @@ +package cloudfront + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// KeyGroup AWS CloudFormation Resource (AWS::CloudFront::KeyGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html +type KeyGroup struct { + + // KeyGroupConfig AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html#cfn-cloudfront-keygroup-keygroupconfig + KeyGroupConfig *KeyGroup_KeyGroupConfig `json:"KeyGroupConfig,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *KeyGroup) AWSCloudFormationType() string { + return "AWS::CloudFront::KeyGroup" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r KeyGroup) MarshalJSON() ([]byte, error) { + type Properties KeyGroup + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *KeyGroup) UnmarshalJSON(b []byte) error { + type Properties KeyGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = KeyGroup(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/cloudfront/aws-cloudfront-keygroup_keygroupconfig.go b/cloudformation/cloudfront/aws-cloudfront-keygroup_keygroupconfig.go new file mode 100644 index 0000000000..4ec8d67e14 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-keygroup_keygroupconfig.go @@ -0,0 +1,45 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// KeyGroup_KeyGroupConfig AWS CloudFormation Resource (AWS::CloudFront::KeyGroup.KeyGroupConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html +type KeyGroup_KeyGroupConfig struct { + + // Comment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html#cfn-cloudfront-keygroup-keygroupconfig-comment + Comment string `json:"Comment,omitempty"` + + // Items AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html#cfn-cloudfront-keygroup-keygroupconfig-items + Items []string `json:"Items,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html#cfn-cloudfront-keygroup-keygroupconfig-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *KeyGroup_KeyGroupConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::KeyGroup.KeyGroupConfig" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-publickey.go b/cloudformation/cloudfront/aws-cloudfront-publickey.go new file mode 100644 index 0000000000..af98d54fba --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-publickey.go @@ -0,0 +1,106 @@ +package cloudfront + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PublicKey AWS CloudFormation Resource (AWS::CloudFront::PublicKey) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html +type PublicKey struct { + + // PublicKeyConfig AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html#cfn-cloudfront-publickey-publickeyconfig + PublicKeyConfig *PublicKey_PublicKeyConfig `json:"PublicKeyConfig,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *PublicKey) AWSCloudFormationType() string { + return "AWS::CloudFront::PublicKey" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r PublicKey) MarshalJSON() ([]byte, error) { + type Properties PublicKey + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *PublicKey) UnmarshalJSON(b []byte) error { + type Properties PublicKey + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = PublicKey(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/cloudfront/aws-cloudfront-publickey_publickeyconfig.go b/cloudformation/cloudfront/aws-cloudfront-publickey_publickeyconfig.go new file mode 100644 index 0000000000..70f7eeff8b --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-publickey_publickeyconfig.go @@ -0,0 +1,50 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PublicKey_PublicKeyConfig AWS CloudFormation Resource (AWS::CloudFront::PublicKey.PublicKeyConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html +type PublicKey_PublicKeyConfig struct { + + // CallerReference AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-callerreference + CallerReference string `json:"CallerReference,omitempty"` + + // Comment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-comment + Comment string `json:"Comment,omitempty"` + + // EncodedKey AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-encodedkey + EncodedKey string `json:"EncodedKey,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *PublicKey_PublicKeyConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::PublicKey.PublicKeyConfig" +} diff --git a/cloudformation/codestar/aws-codestar-githubrepository.go b/cloudformation/codestar/aws-codestar-githubrepository.go index 37e260b0d5..2e82580193 100644 --- a/cloudformation/codestar/aws-codestar-githubrepository.go +++ b/cloudformation/codestar/aws-codestar-githubrepository.go @@ -17,6 +17,11 @@ type GitHubRepository struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-code Code *GitHubRepository_Code `json:"Code,omitempty"` + // ConnectionArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-connectionarn + ConnectionArn string `json:"ConnectionArn,omitempty"` + // EnableIssues AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-enableissues @@ -28,7 +33,7 @@ type GitHubRepository struct { IsPrivate bool `json:"IsPrivate,omitempty"` // RepositoryAccessToken AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-repositoryaccesstoken RepositoryAccessToken string `json:"RepositoryAccessToken,omitempty"` diff --git a/cloudformation/databrew/aws-databrew-dataset.go b/cloudformation/databrew/aws-databrew-dataset.go new file mode 100644 index 0000000000..83ae5c32b9 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-dataset.go @@ -0,0 +1,122 @@ +package databrew + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Dataset AWS CloudFormation Resource (AWS::DataBrew::Dataset) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html +type Dataset struct { + + // FormatOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-formatoptions + FormatOptions interface{} `json:"FormatOptions,omitempty"` + + // Input AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-input + Input interface{} `json:"Input,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Dataset) AWSCloudFormationType() string { + return "AWS::DataBrew::Dataset" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Dataset) MarshalJSON() ([]byte, error) { + type Properties Dataset + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Dataset) UnmarshalJSON(b []byte) error { + type Properties Dataset + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Dataset(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/databrew/aws-databrew-job.go b/cloudformation/databrew/aws-databrew-job.go new file mode 100644 index 0000000000..fc3f580163 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-job.go @@ -0,0 +1,177 @@ +package databrew + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Job AWS CloudFormation Resource (AWS::DataBrew::Job) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html +type Job struct { + + // DatasetName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-datasetname + DatasetName string `json:"DatasetName,omitempty"` + + // EncryptionKeyArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-encryptionkeyarn + EncryptionKeyArn string `json:"EncryptionKeyArn,omitempty"` + + // EncryptionMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-encryptionmode + EncryptionMode string `json:"EncryptionMode,omitempty"` + + // LogSubscription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-logsubscription + LogSubscription string `json:"LogSubscription,omitempty"` + + // MaxCapacity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-maxcapacity + MaxCapacity int `json:"MaxCapacity,omitempty"` + + // MaxRetries AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-maxretries + MaxRetries int `json:"MaxRetries,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-name + Name string `json:"Name,omitempty"` + + // OutputLocation AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-outputlocation + OutputLocation interface{} `json:"OutputLocation,omitempty"` + + // Outputs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-outputs + Outputs []Job_Output `json:"Outputs,omitempty"` + + // ProjectName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-projectname + ProjectName string `json:"ProjectName,omitempty"` + + // Recipe AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-recipe + Recipe interface{} `json:"Recipe,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Timeout AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-timeout + Timeout int `json:"Timeout,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-type + Type string `json:"Type,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Job) AWSCloudFormationType() string { + return "AWS::DataBrew::Job" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Job) MarshalJSON() ([]byte, error) { + type Properties Job + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Job) UnmarshalJSON(b []byte) error { + type Properties Job + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Job(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/databrew/aws-databrew-job_output.go b/cloudformation/databrew/aws-databrew-job_output.go new file mode 100644 index 0000000000..9f5628f762 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-job_output.go @@ -0,0 +1,55 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Job_Output AWS CloudFormation Resource (AWS::DataBrew::Job.Output) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html +type Job_Output struct { + + // CompressionFormat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-compressionformat + CompressionFormat string `json:"CompressionFormat,omitempty"` + + // Format AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-format + Format string `json:"Format,omitempty"` + + // Location AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-location + Location *Job_S3Location `json:"Location,omitempty"` + + // Overwrite AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-overwrite + Overwrite bool `json:"Overwrite,omitempty"` + + // PartitionColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-partitioncolumns + PartitionColumns []string `json:"PartitionColumns,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Job_Output) AWSCloudFormationType() string { + return "AWS::DataBrew::Job.Output" +} diff --git a/cloudformation/databrew/aws-databrew-job_s3location.go b/cloudformation/databrew/aws-databrew-job_s3location.go new file mode 100644 index 0000000000..ca72583b26 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-job_s3location.go @@ -0,0 +1,40 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Job_S3Location AWS CloudFormation Resource (AWS::DataBrew::Job.S3Location) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html +type Job_S3Location struct { + + // Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-bucket + Bucket string `json:"Bucket,omitempty"` + + // Key AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-key + Key string `json:"Key,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Job_S3Location) AWSCloudFormationType() string { + return "AWS::DataBrew::Job.S3Location" +} diff --git a/cloudformation/databrew/aws-databrew-project.go b/cloudformation/databrew/aws-databrew-project.go new file mode 100644 index 0000000000..3ed5b0bde3 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-project.go @@ -0,0 +1,132 @@ +package databrew + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Project AWS CloudFormation Resource (AWS::DataBrew::Project) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html +type Project struct { + + // DatasetName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-datasetname + DatasetName string `json:"DatasetName,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-name + Name string `json:"Name,omitempty"` + + // RecipeName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-recipename + RecipeName string `json:"RecipeName,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // Sample AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-sample + Sample interface{} `json:"Sample,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Project) AWSCloudFormationType() string { + return "AWS::DataBrew::Project" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Project) MarshalJSON() ([]byte, error) { + type Properties Project + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Project) UnmarshalJSON(b []byte) error { + type Properties Project + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Project(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/databrew/aws-databrew-recipe.go b/cloudformation/databrew/aws-databrew-recipe.go new file mode 100644 index 0000000000..e7b4d03175 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe.go @@ -0,0 +1,122 @@ +package databrew + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Recipe AWS CloudFormation Resource (AWS::DataBrew::Recipe) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html +type Recipe struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-name + Name string `json:"Name,omitempty"` + + // Steps AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-steps + Steps []Recipe_RecipeStep `json:"Steps,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Recipe) MarshalJSON() ([]byte, error) { + type Properties Recipe + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Recipe) UnmarshalJSON(b []byte) error { + type Properties Recipe + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Recipe(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/databrew/aws-databrew-recipe_action.go b/cloudformation/databrew/aws-databrew-recipe_action.go new file mode 100644 index 0000000000..00d08bf886 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_action.go @@ -0,0 +1,40 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_Action AWS CloudFormation Resource (AWS::DataBrew::Recipe.Action) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html +type Recipe_Action struct { + + // Operation AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html#cfn-databrew-recipe-action-operation + Operation string `json:"Operation,omitempty"` + + // Parameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html#cfn-databrew-recipe-action-parameters + Parameters interface{} `json:"Parameters,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_Action) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.Action" +} diff --git a/cloudformation/databrew/aws-databrew-recipe_conditionexpression.go b/cloudformation/databrew/aws-databrew-recipe_conditionexpression.go new file mode 100644 index 0000000000..828d3abba8 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_conditionexpression.go @@ -0,0 +1,45 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_ConditionExpression AWS CloudFormation Resource (AWS::DataBrew::Recipe.ConditionExpression) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html +type Recipe_ConditionExpression struct { + + // Condition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-condition + Condition string `json:"Condition,omitempty"` + + // TargetColumn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-targetcolumn + TargetColumn string `json:"TargetColumn,omitempty"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-value + Value string `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_ConditionExpression) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.ConditionExpression" +} diff --git a/cloudformation/databrew/aws-databrew-recipe_datacataloginputdefinition.go b/cloudformation/databrew/aws-databrew-recipe_datacataloginputdefinition.go new file mode 100644 index 0000000000..e6ddffb545 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_datacataloginputdefinition.go @@ -0,0 +1,50 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_DataCatalogInputDefinition AWS CloudFormation Resource (AWS::DataBrew::Recipe.DataCatalogInputDefinition) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html +type Recipe_DataCatalogInputDefinition struct { + + // CatalogId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-catalogid + CatalogId string `json:"CatalogId,omitempty"` + + // DatabaseName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-databasename + DatabaseName string `json:"DatabaseName,omitempty"` + + // TableName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-tablename + TableName string `json:"TableName,omitempty"` + + // TempDirectory AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-tempdirectory + TempDirectory *Recipe_S3Location `json:"TempDirectory,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_DataCatalogInputDefinition) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.DataCatalogInputDefinition" +} diff --git a/cloudformation/databrew/aws-databrew-recipe_recipeparameters.go b/cloudformation/databrew/aws-databrew-recipe_recipeparameters.go new file mode 100644 index 0000000000..3e9487fdd9 --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_recipeparameters.go @@ -0,0 +1,535 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_RecipeParameters AWS CloudFormation Resource (AWS::DataBrew::Recipe.RecipeParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html +type Recipe_RecipeParameters struct { + + // AggregateFunction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-aggregatefunction + AggregateFunction string `json:"AggregateFunction,omitempty"` + + // Base AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-base + Base string `json:"Base,omitempty"` + + // CaseStatement AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-casestatement + CaseStatement string `json:"CaseStatement,omitempty"` + + // CategoryMap AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-categorymap + CategoryMap string `json:"CategoryMap,omitempty"` + + // CharsToRemove AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-charstoremove + CharsToRemove string `json:"CharsToRemove,omitempty"` + + // CollapseConsecutiveWhitespace AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-collapseconsecutivewhitespace + CollapseConsecutiveWhitespace string `json:"CollapseConsecutiveWhitespace,omitempty"` + + // ColumnDataType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-columndatatype + ColumnDataType string `json:"ColumnDataType,omitempty"` + + // ColumnRange AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-columnrange + ColumnRange string `json:"ColumnRange,omitempty"` + + // Count AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-count + Count string `json:"Count,omitempty"` + + // CustomCharacters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customcharacters + CustomCharacters string `json:"CustomCharacters,omitempty"` + + // CustomStopWords AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customstopwords + CustomStopWords string `json:"CustomStopWords,omitempty"` + + // CustomValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customvalue + CustomValue string `json:"CustomValue,omitempty"` + + // DatasetsColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datasetscolumns + DatasetsColumns string `json:"DatasetsColumns,omitempty"` + + // DateAddValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-dateaddvalue + DateAddValue string `json:"DateAddValue,omitempty"` + + // DateTimeFormat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datetimeformat + DateTimeFormat string `json:"DateTimeFormat,omitempty"` + + // DateTimeParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datetimeparameters + DateTimeParameters string `json:"DateTimeParameters,omitempty"` + + // DeleteOtherRows AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-deleteotherrows + DeleteOtherRows string `json:"DeleteOtherRows,omitempty"` + + // Delimiter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-delimiter + Delimiter string `json:"Delimiter,omitempty"` + + // EndPattern AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endpattern + EndPattern string `json:"EndPattern,omitempty"` + + // EndPosition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endposition + EndPosition string `json:"EndPosition,omitempty"` + + // EndValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endvalue + EndValue string `json:"EndValue,omitempty"` + + // ExpandContractions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-expandcontractions + ExpandContractions string `json:"ExpandContractions,omitempty"` + + // Exponent AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-exponent + Exponent string `json:"Exponent,omitempty"` + + // FalseString AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-falsestring + FalseString string `json:"FalseString,omitempty"` + + // GroupByAggFunctionOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-groupbyaggfunctionoptions + GroupByAggFunctionOptions string `json:"GroupByAggFunctionOptions,omitempty"` + + // GroupByColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-groupbycolumns + GroupByColumns string `json:"GroupByColumns,omitempty"` + + // HiddenColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-hiddencolumns + HiddenColumns string `json:"HiddenColumns,omitempty"` + + // IgnoreCase AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-ignorecase + IgnoreCase string `json:"IgnoreCase,omitempty"` + + // IncludeInSplit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-includeinsplit + IncludeInSplit string `json:"IncludeInSplit,omitempty"` + + // Input AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-input + Input interface{} `json:"Input,omitempty"` + + // Interval AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-interval + Interval string `json:"Interval,omitempty"` + + // IsText AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-istext + IsText string `json:"IsText,omitempty"` + + // JoinKeys AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-joinkeys + JoinKeys string `json:"JoinKeys,omitempty"` + + // JoinType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-jointype + JoinType string `json:"JoinType,omitempty"` + + // LeftColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-leftcolumns + LeftColumns string `json:"LeftColumns,omitempty"` + + // Limit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-limit + Limit string `json:"Limit,omitempty"` + + // LowerBound AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-lowerbound + LowerBound string `json:"LowerBound,omitempty"` + + // MapType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-maptype + MapType string `json:"MapType,omitempty"` + + // ModeType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-modetype + ModeType string `json:"ModeType,omitempty"` + + // MultiLine AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-multiline + MultiLine bool `json:"MultiLine,omitempty"` + + // NumRows AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrows + NumRows string `json:"NumRows,omitempty"` + + // NumRowsAfter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrowsafter + NumRowsAfter string `json:"NumRowsAfter,omitempty"` + + // NumRowsBefore AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrowsbefore + NumRowsBefore string `json:"NumRowsBefore,omitempty"` + + // OrderByColumn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-orderbycolumn + OrderByColumn string `json:"OrderByColumn,omitempty"` + + // OrderByColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-orderbycolumns + OrderByColumns string `json:"OrderByColumns,omitempty"` + + // Other AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-other + Other string `json:"Other,omitempty"` + + // Pattern AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-pattern + Pattern string `json:"Pattern,omitempty"` + + // PatternOption1 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoption1 + PatternOption1 string `json:"PatternOption1,omitempty"` + + // PatternOption2 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoption2 + PatternOption2 string `json:"PatternOption2,omitempty"` + + // PatternOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoptions + PatternOptions string `json:"PatternOptions,omitempty"` + + // Period AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-period + Period string `json:"Period,omitempty"` + + // Position AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-position + Position string `json:"Position,omitempty"` + + // RemoveAllPunctuation AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallpunctuation + RemoveAllPunctuation string `json:"RemoveAllPunctuation,omitempty"` + + // RemoveAllQuotes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallquotes + RemoveAllQuotes string `json:"RemoveAllQuotes,omitempty"` + + // RemoveAllWhitespace AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallwhitespace + RemoveAllWhitespace string `json:"RemoveAllWhitespace,omitempty"` + + // RemoveCustomCharacters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removecustomcharacters + RemoveCustomCharacters string `json:"RemoveCustomCharacters,omitempty"` + + // RemoveCustomValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removecustomvalue + RemoveCustomValue string `json:"RemoveCustomValue,omitempty"` + + // RemoveLeadingAndTrailingPunctuation AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingpunctuation + RemoveLeadingAndTrailingPunctuation string `json:"RemoveLeadingAndTrailingPunctuation,omitempty"` + + // RemoveLeadingAndTrailingQuotes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingquotes + RemoveLeadingAndTrailingQuotes string `json:"RemoveLeadingAndTrailingQuotes,omitempty"` + + // RemoveLeadingAndTrailingWhitespace AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingwhitespace + RemoveLeadingAndTrailingWhitespace string `json:"RemoveLeadingAndTrailingWhitespace,omitempty"` + + // RemoveLetters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeletters + RemoveLetters string `json:"RemoveLetters,omitempty"` + + // RemoveNumbers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removenumbers + RemoveNumbers string `json:"RemoveNumbers,omitempty"` + + // RemoveSourceColumn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removesourcecolumn + RemoveSourceColumn string `json:"RemoveSourceColumn,omitempty"` + + // RemoveSpecialCharacters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removespecialcharacters + RemoveSpecialCharacters string `json:"RemoveSpecialCharacters,omitempty"` + + // RightColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-rightcolumns + RightColumns string `json:"RightColumns,omitempty"` + + // SampleSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-samplesize + SampleSize string `json:"SampleSize,omitempty"` + + // SampleType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sampletype + SampleType string `json:"SampleType,omitempty"` + + // SecondInput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-secondinput + SecondInput string `json:"SecondInput,omitempty"` + + // SecondaryInputs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-secondaryinputs + SecondaryInputs []Recipe_SecondaryInput `json:"SecondaryInputs,omitempty"` + + // SheetIndexes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sheetindexes + SheetIndexes []int `json:"SheetIndexes,omitempty"` + + // SheetNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sheetnames + SheetNames []string `json:"SheetNames,omitempty"` + + // SourceColumn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn + SourceColumn string `json:"SourceColumn,omitempty"` + + // SourceColumn1 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn1 + SourceColumn1 string `json:"SourceColumn1,omitempty"` + + // SourceColumn2 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn2 + SourceColumn2 string `json:"SourceColumn2,omitempty"` + + // SourceColumns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumns + SourceColumns string `json:"SourceColumns,omitempty"` + + // StartColumnIndex AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startcolumnindex + StartColumnIndex string `json:"StartColumnIndex,omitempty"` + + // StartPattern AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startpattern + StartPattern string `json:"StartPattern,omitempty"` + + // StartPosition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startposition + StartPosition string `json:"StartPosition,omitempty"` + + // StartValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startvalue + StartValue string `json:"StartValue,omitempty"` + + // StemmingMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stemmingmode + StemmingMode string `json:"StemmingMode,omitempty"` + + // StepCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stepcount + StepCount string `json:"StepCount,omitempty"` + + // StepIndex AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stepindex + StepIndex string `json:"StepIndex,omitempty"` + + // StopWordsMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stopwordsmode + StopWordsMode string `json:"StopWordsMode,omitempty"` + + // Strategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-strategy + Strategy string `json:"Strategy,omitempty"` + + // TargetColumn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetcolumn + TargetColumn string `json:"TargetColumn,omitempty"` + + // TargetColumnNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetcolumnnames + TargetColumnNames string `json:"TargetColumnNames,omitempty"` + + // TargetDateFormat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetdateformat + TargetDateFormat string `json:"TargetDateFormat,omitempty"` + + // TargetIndex AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetindex + TargetIndex string `json:"TargetIndex,omitempty"` + + // TimeZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-timezone + TimeZone string `json:"TimeZone,omitempty"` + + // TokenizerPattern AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-tokenizerpattern + TokenizerPattern string `json:"TokenizerPattern,omitempty"` + + // TrueString AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-truestring + TrueString string `json:"TrueString,omitempty"` + + // UdfLang AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-udflang + UdfLang string `json:"UdfLang,omitempty"` + + // Units AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-units + Units string `json:"Units,omitempty"` + + // UnpivotColumn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-unpivotcolumn + UnpivotColumn string `json:"UnpivotColumn,omitempty"` + + // UpperBound AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-upperbound + UpperBound string `json:"UpperBound,omitempty"` + + // UseNewDataFrame AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-usenewdataframe + UseNewDataFrame string `json:"UseNewDataFrame,omitempty"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value + Value string `json:"Value,omitempty"` + + // Value1 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value1 + Value1 string `json:"Value1,omitempty"` + + // Value2 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value2 + Value2 string `json:"Value2,omitempty"` + + // ValueColumn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-valuecolumn + ValueColumn string `json:"ValueColumn,omitempty"` + + // ViewFrame AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-viewframe + ViewFrame string `json:"ViewFrame,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_RecipeParameters) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.RecipeParameters" +} diff --git a/cloudformation/databrew/aws-databrew-recipe_recipestep.go b/cloudformation/databrew/aws-databrew-recipe_recipestep.go new file mode 100644 index 0000000000..7d5aa1bc8c --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_recipestep.go @@ -0,0 +1,40 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_RecipeStep AWS CloudFormation Resource (AWS::DataBrew::Recipe.RecipeStep) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html +type Recipe_RecipeStep struct { + + // Action AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html#cfn-databrew-recipe-recipestep-action + Action *Recipe_Action `json:"Action,omitempty"` + + // ConditionExpressions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html#cfn-databrew-recipe-recipestep-conditionexpressions + ConditionExpressions []Recipe_ConditionExpression `json:"ConditionExpressions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_RecipeStep) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.RecipeStep" +} diff --git a/cloudformation/databrew/aws-databrew-recipe_s3location.go b/cloudformation/databrew/aws-databrew-recipe_s3location.go new file mode 100644 index 0000000000..321118e48a --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_s3location.go @@ -0,0 +1,40 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_S3Location AWS CloudFormation Resource (AWS::DataBrew::Recipe.S3Location) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html +type Recipe_S3Location struct { + + // Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html#cfn-databrew-recipe-s3location-bucket + Bucket string `json:"Bucket,omitempty"` + + // Key AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html#cfn-databrew-recipe-s3location-key + Key string `json:"Key,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_S3Location) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.S3Location" +} diff --git a/cloudformation/databrew/aws-databrew-recipe_secondaryinput.go b/cloudformation/databrew/aws-databrew-recipe_secondaryinput.go new file mode 100644 index 0000000000..58fdae629c --- /dev/null +++ b/cloudformation/databrew/aws-databrew-recipe_secondaryinput.go @@ -0,0 +1,40 @@ +package databrew + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Recipe_SecondaryInput AWS CloudFormation Resource (AWS::DataBrew::Recipe.SecondaryInput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html +type Recipe_SecondaryInput struct { + + // DataCatalogInputDefinition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html#cfn-databrew-recipe-secondaryinput-datacataloginputdefinition + DataCatalogInputDefinition *Recipe_DataCatalogInputDefinition `json:"DataCatalogInputDefinition,omitempty"` + + // S3InputDefinition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html#cfn-databrew-recipe-secondaryinput-s3inputdefinition + S3InputDefinition *Recipe_S3Location `json:"S3InputDefinition,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Recipe_SecondaryInput) AWSCloudFormationType() string { + return "AWS::DataBrew::Recipe.SecondaryInput" +} diff --git a/cloudformation/databrew/aws-databrew-schedule.go b/cloudformation/databrew/aws-databrew-schedule.go new file mode 100644 index 0000000000..c838263bba --- /dev/null +++ b/cloudformation/databrew/aws-databrew-schedule.go @@ -0,0 +1,122 @@ +package databrew + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Schedule AWS CloudFormation Resource (AWS::DataBrew::Schedule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html +type Schedule struct { + + // CronExpression AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-cronexpression + CronExpression string `json:"CronExpression,omitempty"` + + // JobNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-jobnames + JobNames []string `json:"JobNames,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Schedule) AWSCloudFormationType() string { + return "AWS::DataBrew::Schedule" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Schedule) MarshalJSON() ([]byte, error) { + type Properties Schedule + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Schedule) UnmarshalJSON(b []byte) error { + type Properties Schedule + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Schedule(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_action.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_action.go new file mode 100644 index 0000000000..0d46b1d2ce --- /dev/null +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_action.go @@ -0,0 +1,40 @@ +package dlm + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LifecyclePolicy_Action AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.Action) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html +type LifecyclePolicy_Action struct { + + // CrossRegionCopy AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html#cfn-dlm-lifecyclepolicy-action-crossregioncopy + CrossRegionCopy []LifecyclePolicy_CrossRegionCopyAction `json:"CrossRegionCopy,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html#cfn-dlm-lifecyclepolicy-action-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LifecyclePolicy_Action) AWSCloudFormationType() string { + return "AWS::DLM::LifecyclePolicy.Action" +} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyaction.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyaction.go new file mode 100644 index 0000000000..a43c926094 --- /dev/null +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyaction.go @@ -0,0 +1,45 @@ +package dlm + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LifecyclePolicy_CrossRegionCopyAction AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CrossRegionCopyAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html +type LifecyclePolicy_CrossRegionCopyAction struct { + + // EncryptionConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html#cfn-dlm-lifecyclepolicy-crossregioncopyaction-encryptionconfiguration + EncryptionConfiguration *LifecyclePolicy_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"` + + // RetainRule AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html#cfn-dlm-lifecyclepolicy-crossregioncopyaction-retainrule + RetainRule *LifecyclePolicy_CrossRegionCopyRetainRule `json:"RetainRule,omitempty"` + + // Target AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html#cfn-dlm-lifecyclepolicy-crossregioncopyaction-target + Target string `json:"Target,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LifecyclePolicy_CrossRegionCopyAction) AWSCloudFormationType() string { + return "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" +} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_encryptionconfiguration.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_encryptionconfiguration.go new file mode 100644 index 0000000000..28c23da127 --- /dev/null +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_encryptionconfiguration.go @@ -0,0 +1,40 @@ +package dlm + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LifecyclePolicy_EncryptionConfiguration AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.EncryptionConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html +type LifecyclePolicy_EncryptionConfiguration struct { + + // CmkArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html#cfn-dlm-lifecyclepolicy-encryptionconfiguration-cmkarn + CmkArn string `json:"CmkArn,omitempty"` + + // Encrypted AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html#cfn-dlm-lifecyclepolicy-encryptionconfiguration-encrypted + Encrypted bool `json:"Encrypted"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LifecyclePolicy_EncryptionConfiguration) AWSCloudFormationType() string { + return "AWS::DLM::LifecyclePolicy.EncryptionConfiguration" +} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventparameters.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventparameters.go new file mode 100644 index 0000000000..3b2b489721 --- /dev/null +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventparameters.go @@ -0,0 +1,45 @@ +package dlm + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LifecyclePolicy_EventParameters AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.EventParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html +type LifecyclePolicy_EventParameters struct { + + // DescriptionRegex AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html#cfn-dlm-lifecyclepolicy-eventparameters-descriptionregex + DescriptionRegex string `json:"DescriptionRegex,omitempty"` + + // EventType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html#cfn-dlm-lifecyclepolicy-eventparameters-eventtype + EventType string `json:"EventType,omitempty"` + + // SnapshotOwner AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html#cfn-dlm-lifecyclepolicy-eventparameters-snapshotowner + SnapshotOwner []string `json:"SnapshotOwner,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LifecyclePolicy_EventParameters) AWSCloudFormationType() string { + return "AWS::DLM::LifecyclePolicy.EventParameters" +} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventsource.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventsource.go new file mode 100644 index 0000000000..83b654c2d8 --- /dev/null +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventsource.go @@ -0,0 +1,40 @@ +package dlm + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LifecyclePolicy_EventSource AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.EventSource) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html +type LifecyclePolicy_EventSource struct { + + // Parameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html#cfn-dlm-lifecyclepolicy-eventsource-parameters + Parameters *LifecyclePolicy_EventParameters `json:"Parameters,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html#cfn-dlm-lifecyclepolicy-eventsource-type + Type string `json:"Type,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LifecyclePolicy_EventSource) AWSCloudFormationType() string { + return "AWS::DLM::LifecyclePolicy.EventSource" +} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go index 68feaa8e85..9adf1062d8 100644 --- a/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go @@ -9,6 +9,16 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html type LifecyclePolicy_PolicyDetails struct { + // Actions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-actions + Actions []LifecyclePolicy_Action `json:"Actions,omitempty"` + + // EventSource AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-eventsource + EventSource *LifecyclePolicy_EventSource `json:"EventSource,omitempty"` + // Parameters AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-parameters @@ -20,17 +30,17 @@ type LifecyclePolicy_PolicyDetails struct { PolicyType string `json:"PolicyType,omitempty"` // ResourceTypes AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-resourcetypes ResourceTypes []string `json:"ResourceTypes,omitempty"` // Schedules AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-schedules Schedules []LifecyclePolicy_Schedule `json:"Schedules,omitempty"` // TargetTags AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-targettags TargetTags []tags.Tag `json:"TargetTags,omitempty"` diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go index 19079e8854..3281511a0d 100644 --- a/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go @@ -39,6 +39,11 @@ type LifecyclePolicy_Schedule struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-retainrule RetainRule *LifecyclePolicy_RetainRule `json:"RetainRule,omitempty"` + // ShareRules AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-sharerules + ShareRules []LifecyclePolicy_ShareRule `json:"ShareRules,omitempty"` + // TagsToAdd AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-tagstoadd diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_sharerule.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_sharerule.go new file mode 100644 index 0000000000..ef65d54ecd --- /dev/null +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_sharerule.go @@ -0,0 +1,45 @@ +package dlm + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LifecyclePolicy_ShareRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.ShareRule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html +type LifecyclePolicy_ShareRule struct { + + // TargetAccounts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html#cfn-dlm-lifecyclepolicy-sharerule-targetaccounts + TargetAccounts []string `json:"TargetAccounts,omitempty"` + + // UnshareInterval AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html#cfn-dlm-lifecyclepolicy-sharerule-unshareinterval + UnshareInterval int `json:"UnshareInterval,omitempty"` + + // UnshareIntervalUnit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html#cfn-dlm-lifecyclepolicy-sharerule-unshareintervalunit + UnshareIntervalUnit string `json:"UnshareIntervalUnit,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LifecyclePolicy_ShareRule) AWSCloudFormationType() string { + return "AWS::DLM::LifecyclePolicy.ShareRule" +} diff --git a/cloudformation/ec2/aws-ec2-clientvpnendpoint.go b/cloudformation/ec2/aws-ec2-clientvpnendpoint.go index 05cdeb7797..03123574e2 100644 --- a/cloudformation/ec2/aws-ec2-clientvpnendpoint.go +++ b/cloudformation/ec2/aws-ec2-clientvpnendpoint.go @@ -22,6 +22,11 @@ type ClientVpnEndpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-clientcidrblock ClientCidrBlock string `json:"ClientCidrBlock,omitempty"` + // ClientConnectOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-clientconnectoptions + ClientConnectOptions *ClientVpnEndpoint_ClientConnectOptions `json:"ClientConnectOptions,omitempty"` + // ConnectionLogOptions AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-connectionlogoptions diff --git a/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientconnectoptions.go b/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientconnectoptions.go new file mode 100644 index 0000000000..01a00ddcff --- /dev/null +++ b/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientconnectoptions.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// ClientVpnEndpoint_ClientConnectOptions AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.ClientConnectOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html +type ClientVpnEndpoint_ClientConnectOptions struct { + + // Enabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html#cfn-ec2-clientvpnendpoint-clientconnectoptions-enabled + Enabled bool `json:"Enabled"` + + // LambdaFunctionArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html#cfn-ec2-clientvpnendpoint-clientconnectoptions-lambdafunctionarn + LambdaFunctionArn string `json:"LambdaFunctionArn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ClientVpnEndpoint_ClientConnectOptions) AWSCloudFormationType() string { + return "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go b/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go index ae99aae6d6..212560e4e6 100644 --- a/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go +++ b/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go @@ -13,6 +13,11 @@ type LaunchTemplate_CapacityReservationTarget struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationid CapacityReservationId string `json:"CapacityReservationId,omitempty"` + // CapacityReservationResourceGroupArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationresourcegrouparn + CapacityReservationResourceGroupArn string `json:"CapacityReservationResourceGroupArn,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_enclaveoptions.go b/cloudformation/ec2/aws-ec2-launchtemplate_enclaveoptions.go new file mode 100644 index 0000000000..901b9e5c9f --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_enclaveoptions.go @@ -0,0 +1,35 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LaunchTemplate_EnclaveOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.EnclaveOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html +type LaunchTemplate_EnclaveOptions struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-enclaveoptions-enabled + Enabled bool `json:"Enabled,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_EnclaveOptions) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.EnclaveOptions" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go b/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go index 85f3103e84..61a60794b1 100644 --- a/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go +++ b/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go @@ -48,6 +48,11 @@ type LaunchTemplate_LaunchTemplateData struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticinferenceaccelerators ElasticInferenceAccelerators []LaunchTemplate_LaunchTemplateElasticInferenceAccelerator `json:"ElasticInferenceAccelerators,omitempty"` + // EnclaveOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-enclaveoptions + EnclaveOptions *LaunchTemplate_EnclaveOptions `json:"EnclaveOptions,omitempty"` + // HibernationOptions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go b/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go index cc1d340514..40fe5f1377 100644 --- a/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go +++ b/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html type LaunchTemplate_NetworkInterface struct { + // AssociateCarrierIpAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatecarrieripaddress + AssociateCarrierIpAddress bool `json:"AssociateCarrierIpAddress,omitempty"` + // AssociatePublicIpAddress AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatepublicipaddress @@ -48,6 +53,11 @@ type LaunchTemplate_NetworkInterface struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-ipv6addresses Ipv6Addresses []LaunchTemplate_Ipv6Add `json:"Ipv6Addresses,omitempty"` + // NetworkCardIndex AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkcardindex + NetworkCardIndex int `json:"NetworkCardIndex,omitempty"` + // NetworkInterfaceId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkinterfaceid diff --git a/cloudformation/ec2/aws-ec2-vpcendpointservice.go b/cloudformation/ec2/aws-ec2-vpcendpointservice.go index 31fa9cc250..94dbb45a4c 100644 --- a/cloudformation/ec2/aws-ec2-vpcendpointservice.go +++ b/cloudformation/ec2/aws-ec2-vpcendpointservice.go @@ -17,6 +17,11 @@ type VPCEndpointService struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-acceptancerequired AcceptanceRequired bool `json:"AcceptanceRequired,omitempty"` + // GatewayLoadBalancerArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-gatewayloadbalancerarns + GatewayLoadBalancerArns []string `json:"GatewayLoadBalancerArns,omitempty"` + // NetworkLoadBalancerArns AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go index 8f56942663..e210e89173 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go @@ -5,47 +5,47 @@ import ( ) // Listener_Action AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.Action) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html type Listener_Action struct { // AuthenticateCognitoConfig AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-action-authenticatecognitoconfig + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-authenticatecognitoconfig AuthenticateCognitoConfig *Listener_AuthenticateCognitoConfig `json:"AuthenticateCognitoConfig,omitempty"` // AuthenticateOidcConfig AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-action-authenticateoidcconfig + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-authenticateoidcconfig AuthenticateOidcConfig *Listener_AuthenticateOidcConfig `json:"AuthenticateOidcConfig,omitempty"` // FixedResponseConfig AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-action-fixedresponseconfig + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-fixedresponseconfig FixedResponseConfig *Listener_FixedResponseConfig `json:"FixedResponseConfig,omitempty"` // ForwardConfig AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-action-forwardconfig + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-forwardconfig ForwardConfig *Listener_ForwardConfig `json:"ForwardConfig,omitempty"` // Order AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-action-order + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-order Order int `json:"Order,omitempty"` // RedirectConfig AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-action-redirectconfig + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-redirectconfig RedirectConfig *Listener_RedirectConfig `json:"RedirectConfig,omitempty"` // TargetGroupArn AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-defaultactions-targetgrouparn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-targetgrouparn TargetGroupArn string `json:"TargetGroupArn,omitempty"` // Type AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html#cfn-elasticloadbalancingv2-listener-defaultactions-type + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-type Type string `json:"Type,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go index 34d5bb728c..cd1045047a 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go @@ -31,7 +31,7 @@ type Listener_AuthenticateCognitoConfig struct { // SessionTimeout AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-sessiontimeout - SessionTimeout int64 `json:"SessionTimeout,omitempty"` + SessionTimeout string `json:"SessionTimeout,omitempty"` // UserPoolArn AWS CloudFormation Property // Required: true diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go index 2d6bc1c2c6..1b6135bc95 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go @@ -51,7 +51,7 @@ type Listener_AuthenticateOidcConfig struct { // SessionTimeout AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-sessiontimeout - SessionTimeout int64 `json:"SessionTimeout,omitempty"` + SessionTimeout string `json:"SessionTimeout,omitempty"` // TokenEndpoint AWS CloudFormation Property // Required: true diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go index 2c4ec95237..0c91bd3c07 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go @@ -5,12 +5,12 @@ import ( ) // Listener_Certificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.Certificate) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html type Listener_Certificate struct { // CertificateArn AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html#cfn-elasticloadbalancingv2-listener-certificates-certificatearn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html#cfn-elasticloadbalancingv2-listener-certificate-certificatearn CertificateArn string `json:"CertificateArn,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/events/aws-events-eventbuspolicy.go b/cloudformation/events/aws-events-eventbuspolicy.go index 4e3d544ac9..49f2da4ccd 100644 --- a/cloudformation/events/aws-events-eventbuspolicy.go +++ b/cloudformation/events/aws-events-eventbuspolicy.go @@ -13,7 +13,7 @@ import ( type EventBusPolicy struct { // Action AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-action Action string `json:"Action,omitempty"` @@ -28,10 +28,15 @@ type EventBusPolicy struct { EventBusName string `json:"EventBusName,omitempty"` // Principal AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-principal Principal string `json:"Principal,omitempty"` + // Statement AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-statement + Statement interface{} `json:"Statement,omitempty"` + // StatementId AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-statementid diff --git a/cloudformation/glue/aws-glue-connection_connectioninput.go b/cloudformation/glue/aws-glue-connection_connectioninput.go index d4fef87358..41cfee113b 100644 --- a/cloudformation/glue/aws-glue-connection_connectioninput.go +++ b/cloudformation/glue/aws-glue-connection_connectioninput.go @@ -9,7 +9,7 @@ import ( type Connection_ConnectionInput struct { // ConnectionProperties AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectionproperties ConnectionProperties interface{} `json:"ConnectionProperties,omitempty"` diff --git a/cloudformation/glue/aws-glue-crawler_s3target.go b/cloudformation/glue/aws-glue-crawler_s3target.go index f355114bbe..5a8e507f30 100644 --- a/cloudformation/glue/aws-glue-crawler_s3target.go +++ b/cloudformation/glue/aws-glue-crawler_s3target.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html type Crawler_S3Target struct { + // ConnectionName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-connectionname + ConnectionName string `json:"ConnectionName,omitempty"` + // Exclusions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-exclusions diff --git a/cloudformation/glue/aws-glue-database_databaseidentifier.go b/cloudformation/glue/aws-glue-database_databaseidentifier.go new file mode 100644 index 0000000000..843ece7d19 --- /dev/null +++ b/cloudformation/glue/aws-glue-database_databaseidentifier.go @@ -0,0 +1,40 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Database_DatabaseIdentifier AWS CloudFormation Resource (AWS::Glue::Database.DatabaseIdentifier) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html +type Database_DatabaseIdentifier struct { + + // CatalogId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html#cfn-glue-database-databaseidentifier-catalogid + CatalogId string `json:"CatalogId,omitempty"` + + // DatabaseName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html#cfn-glue-database-databaseidentifier-databasename + DatabaseName string `json:"DatabaseName,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Database_DatabaseIdentifier) AWSCloudFormationType() string { + return "AWS::Glue::Database.DatabaseIdentifier" +} diff --git a/cloudformation/glue/aws-glue-database_databaseinput.go b/cloudformation/glue/aws-glue-database_databaseinput.go index 3065b2bdb0..7917871287 100644 --- a/cloudformation/glue/aws-glue-database_databaseinput.go +++ b/cloudformation/glue/aws-glue-database_databaseinput.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html type Database_DatabaseInput struct { + // CreateTableDefaultPermissions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-createtabledefaultpermissions + CreateTableDefaultPermissions []Database_PrincipalPrivileges `json:"CreateTableDefaultPermissions,omitempty"` + // Description AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-description @@ -28,6 +33,11 @@ type Database_DatabaseInput struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-parameters Parameters interface{} `json:"Parameters,omitempty"` + // TargetDatabase AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-targetdatabase + TargetDatabase *Database_DatabaseIdentifier `json:"TargetDatabase,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/glue/aws-glue-database_datalakeprincipal.go b/cloudformation/glue/aws-glue-database_datalakeprincipal.go new file mode 100644 index 0000000000..77acb4f6b2 --- /dev/null +++ b/cloudformation/glue/aws-glue-database_datalakeprincipal.go @@ -0,0 +1,35 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Database_DataLakePrincipal AWS CloudFormation Resource (AWS::Glue::Database.DataLakePrincipal) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html +type Database_DataLakePrincipal struct { + + // DataLakePrincipalIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html#cfn-glue-database-datalakeprincipal-datalakeprincipalidentifier + DataLakePrincipalIdentifier string `json:"DataLakePrincipalIdentifier,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Database_DataLakePrincipal) AWSCloudFormationType() string { + return "AWS::Glue::Database.DataLakePrincipal" +} diff --git a/cloudformation/glue/aws-glue-database_principalprivileges.go b/cloudformation/glue/aws-glue-database_principalprivileges.go new file mode 100644 index 0000000000..c3bc6e8e2e --- /dev/null +++ b/cloudformation/glue/aws-glue-database_principalprivileges.go @@ -0,0 +1,40 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Database_PrincipalPrivileges AWS CloudFormation Resource (AWS::Glue::Database.PrincipalPrivileges) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html +type Database_PrincipalPrivileges struct { + + // Permissions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html#cfn-glue-database-principalprivileges-permissions + Permissions []string `json:"Permissions,omitempty"` + + // Principal AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html#cfn-glue-database-principalprivileges-principal + Principal *Database_DataLakePrincipal `json:"Principal,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Database_PrincipalPrivileges) AWSCloudFormationType() string { + return "AWS::Glue::Database.PrincipalPrivileges" +} diff --git a/cloudformation/glue/aws-glue-mltransform.go b/cloudformation/glue/aws-glue-mltransform.go index 451ef84d0f..dc06fd10b8 100644 --- a/cloudformation/glue/aws-glue-mltransform.go +++ b/cloudformation/glue/aws-glue-mltransform.go @@ -62,6 +62,11 @@ type MLTransform struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-timeout Timeout int `json:"Timeout,omitempty"` + // TransformEncryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-transformencryption + TransformEncryption *MLTransform_TransformEncryption `json:"TransformEncryption,omitempty"` + // TransformParameters AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-transformparameters diff --git a/cloudformation/glue/aws-glue-mltransform_mluserdataencryption.go b/cloudformation/glue/aws-glue-mltransform_mluserdataencryption.go new file mode 100644 index 0000000000..4491bdfd3e --- /dev/null +++ b/cloudformation/glue/aws-glue-mltransform_mluserdataencryption.go @@ -0,0 +1,40 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MLTransform_MLUserDataEncryption AWS CloudFormation Resource (AWS::Glue::MLTransform.MLUserDataEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html +type MLTransform_MLUserDataEncryption struct { + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html#cfn-glue-mltransform-transformencryption-mluserdataencryption-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + + // MLUserDataEncryptionMode AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html#cfn-glue-mltransform-transformencryption-mluserdataencryption-mluserdataencryptionmode + MLUserDataEncryptionMode string `json:"MLUserDataEncryptionMode,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *MLTransform_MLUserDataEncryption) AWSCloudFormationType() string { + return "AWS::Glue::MLTransform.MLUserDataEncryption" +} diff --git a/cloudformation/glue/aws-glue-mltransform_transformencryption.go b/cloudformation/glue/aws-glue-mltransform_transformencryption.go new file mode 100644 index 0000000000..10ba023126 --- /dev/null +++ b/cloudformation/glue/aws-glue-mltransform_transformencryption.go @@ -0,0 +1,40 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MLTransform_TransformEncryption AWS CloudFormation Resource (AWS::Glue::MLTransform.TransformEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html +type MLTransform_TransformEncryption struct { + + // MLUserDataEncryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html#cfn-glue-mltransform-transformencryption-mluserdataencryption + MLUserDataEncryption *MLTransform_MLUserDataEncryption `json:"MLUserDataEncryption,omitempty"` + + // TaskRunSecurityConfigurationName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html#cfn-glue-mltransform-transformencryption-taskrunsecurityconfigurationname + TaskRunSecurityConfigurationName string `json:"TaskRunSecurityConfigurationName,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *MLTransform_TransformEncryption) AWSCloudFormationType() string { + return "AWS::Glue::MLTransform.TransformEncryption" +} diff --git a/cloudformation/glue/aws-glue-registry.go b/cloudformation/glue/aws-glue-registry.go new file mode 100644 index 0000000000..c979bb4c78 --- /dev/null +++ b/cloudformation/glue/aws-glue-registry.go @@ -0,0 +1,117 @@ +package glue + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Registry AWS CloudFormation Resource (AWS::Glue::Registry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html +type Registry struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html#cfn-glue-registry-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html#cfn-glue-registry-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html#cfn-glue-registry-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Registry) AWSCloudFormationType() string { + return "AWS::Glue::Registry" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Registry) MarshalJSON() ([]byte, error) { + type Properties Registry + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Registry) UnmarshalJSON(b []byte) error { + type Properties Registry + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Registry(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/glue/aws-glue-schema.go b/cloudformation/glue/aws-glue-schema.go new file mode 100644 index 0000000000..0f3d0efaba --- /dev/null +++ b/cloudformation/glue/aws-glue-schema.go @@ -0,0 +1,142 @@ +package glue + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Schema AWS CloudFormation Resource (AWS::Glue::Schema) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html +type Schema struct { + + // CheckpointVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-checkpointversion + CheckpointVersion *Schema_SchemaVersion `json:"CheckpointVersion,omitempty"` + + // Compatibility AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-compatibility + Compatibility string `json:"Compatibility,omitempty"` + + // DataFormat AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-dataformat + DataFormat string `json:"DataFormat,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-name + Name string `json:"Name,omitempty"` + + // Registry AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-registry + Registry *Schema_Registry `json:"Registry,omitempty"` + + // SchemaDefinition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-schemadefinition + SchemaDefinition string `json:"SchemaDefinition,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Schema) AWSCloudFormationType() string { + return "AWS::Glue::Schema" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Schema) MarshalJSON() ([]byte, error) { + type Properties Schema + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Schema) UnmarshalJSON(b []byte) error { + type Properties Schema + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Schema(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/glue/aws-glue-schema_registry.go b/cloudformation/glue/aws-glue-schema_registry.go new file mode 100644 index 0000000000..c430622329 --- /dev/null +++ b/cloudformation/glue/aws-glue-schema_registry.go @@ -0,0 +1,40 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Schema_Registry AWS CloudFormation Resource (AWS::Glue::Schema.Registry) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html +type Schema_Registry struct { + + // Arn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html#cfn-glue-schema-registry-arn + Arn string `json:"Arn,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html#cfn-glue-schema-registry-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Schema_Registry) AWSCloudFormationType() string { + return "AWS::Glue::Schema.Registry" +} diff --git a/cloudformation/glue/aws-glue-schema_schemaversion.go b/cloudformation/glue/aws-glue-schema_schemaversion.go new file mode 100644 index 0000000000..b0b7f40724 --- /dev/null +++ b/cloudformation/glue/aws-glue-schema_schemaversion.go @@ -0,0 +1,40 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Schema_SchemaVersion AWS CloudFormation Resource (AWS::Glue::Schema.SchemaVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html +type Schema_SchemaVersion struct { + + // IsLatest AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html#cfn-glue-schema-schemaversion-islatest + IsLatest bool `json:"IsLatest,omitempty"` + + // VersionNumber AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html#cfn-glue-schema-schemaversion-versionnumber + VersionNumber int `json:"VersionNumber,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Schema_SchemaVersion) AWSCloudFormationType() string { + return "AWS::Glue::Schema.SchemaVersion" +} diff --git a/cloudformation/glue/aws-glue-schemaversion.go b/cloudformation/glue/aws-glue-schemaversion.go new file mode 100644 index 0000000000..0ac7b3dc99 --- /dev/null +++ b/cloudformation/glue/aws-glue-schemaversion.go @@ -0,0 +1,111 @@ +package glue + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SchemaVersion AWS CloudFormation Resource (AWS::Glue::SchemaVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html +type SchemaVersion struct { + + // Schema AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html#cfn-glue-schemaversion-schema + Schema *SchemaVersion_Schema `json:"Schema,omitempty"` + + // SchemaDefinition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html#cfn-glue-schemaversion-schemadefinition + SchemaDefinition string `json:"SchemaDefinition,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SchemaVersion) AWSCloudFormationType() string { + return "AWS::Glue::SchemaVersion" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r SchemaVersion) MarshalJSON() ([]byte, error) { + type Properties SchemaVersion + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *SchemaVersion) UnmarshalJSON(b []byte) error { + type Properties SchemaVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = SchemaVersion(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/glue/aws-glue-schemaversion_schema.go b/cloudformation/glue/aws-glue-schemaversion_schema.go new file mode 100644 index 0000000000..4ac9cb5251 --- /dev/null +++ b/cloudformation/glue/aws-glue-schemaversion_schema.go @@ -0,0 +1,45 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SchemaVersion_Schema AWS CloudFormation Resource (AWS::Glue::SchemaVersion.Schema) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html +type SchemaVersion_Schema struct { + + // RegistryName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html#cfn-glue-schemaversion-schema-registryname + RegistryName string `json:"RegistryName,omitempty"` + + // SchemaArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html#cfn-glue-schemaversion-schema-schemaarn + SchemaArn string `json:"SchemaArn,omitempty"` + + // SchemaName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html#cfn-glue-schemaversion-schema-schemaname + SchemaName string `json:"SchemaName,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SchemaVersion_Schema) AWSCloudFormationType() string { + return "AWS::Glue::SchemaVersion.Schema" +} diff --git a/cloudformation/glue/aws-glue-schemaversionmetadata.go b/cloudformation/glue/aws-glue-schemaversionmetadata.go new file mode 100644 index 0000000000..7d603da939 --- /dev/null +++ b/cloudformation/glue/aws-glue-schemaversionmetadata.go @@ -0,0 +1,116 @@ +package glue + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SchemaVersionMetadata AWS CloudFormation Resource (AWS::Glue::SchemaVersionMetadata) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html +type SchemaVersionMetadata struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html#cfn-glue-schemaversionmetadata-key + Key string `json:"Key,omitempty"` + + // SchemaVersionId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html#cfn-glue-schemaversionmetadata-schemaversionid + SchemaVersionId string `json:"SchemaVersionId,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html#cfn-glue-schemaversionmetadata-value + Value string `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SchemaVersionMetadata) AWSCloudFormationType() string { + return "AWS::Glue::SchemaVersionMetadata" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r SchemaVersionMetadata) MarshalJSON() ([]byte, error) { + type Properties SchemaVersionMetadata + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *SchemaVersionMetadata) UnmarshalJSON(b []byte) error { + type Properties SchemaVersionMetadata + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = SchemaVersionMetadata(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/glue/aws-glue-table_tableidentifier.go b/cloudformation/glue/aws-glue-table_tableidentifier.go new file mode 100644 index 0000000000..3e7d9f93d2 --- /dev/null +++ b/cloudformation/glue/aws-glue-table_tableidentifier.go @@ -0,0 +1,45 @@ +package glue + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Table_TableIdentifier AWS CloudFormation Resource (AWS::Glue::Table.TableIdentifier) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html +type Table_TableIdentifier struct { + + // CatalogId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html#cfn-glue-table-tableidentifier-catalogid + CatalogId string `json:"CatalogId,omitempty"` + + // DatabaseName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html#cfn-glue-table-tableidentifier-databasename + DatabaseName string `json:"DatabaseName,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html#cfn-glue-table-tableidentifier-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Table_TableIdentifier) AWSCloudFormationType() string { + return "AWS::Glue::Table.TableIdentifier" +} diff --git a/cloudformation/glue/aws-glue-table_tableinput.go b/cloudformation/glue/aws-glue-table_tableinput.go index 4c05309df1..1faf7371f4 100644 --- a/cloudformation/glue/aws-glue-table_tableinput.go +++ b/cloudformation/glue/aws-glue-table_tableinput.go @@ -48,6 +48,11 @@ type Table_TableInput struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-tabletype TableType string `json:"TableType,omitempty"` + // TargetTable AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-targettable + TargetTable *Table_TableIdentifier `json:"TargetTable,omitempty"` + // ViewExpandedText AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-viewexpandedtext diff --git a/cloudformation/iot/aws-iot-topicruledestination.go b/cloudformation/iot/aws-iot-topicruledestination.go new file mode 100644 index 0000000000..325f76ca81 --- /dev/null +++ b/cloudformation/iot/aws-iot-topicruledestination.go @@ -0,0 +1,111 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// TopicRuleDestination AWS CloudFormation Resource (AWS::IoT::TopicRuleDestination) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html +type TopicRuleDestination struct { + + // HttpUrlProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html#cfn-iot-topicruledestination-httpurlproperties + HttpUrlProperties *TopicRuleDestination_HttpUrlDestinationSummary `json:"HttpUrlProperties,omitempty"` + + // Status AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html#cfn-iot-topicruledestination-status + Status string `json:"Status,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *TopicRuleDestination) AWSCloudFormationType() string { + return "AWS::IoT::TopicRuleDestination" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r TopicRuleDestination) MarshalJSON() ([]byte, error) { + type Properties TopicRuleDestination + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *TopicRuleDestination) UnmarshalJSON(b []byte) error { + type Properties TopicRuleDestination + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = TopicRuleDestination(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-topicruledestination_httpurldestinationsummary.go b/cloudformation/iot/aws-iot-topicruledestination_httpurldestinationsummary.go new file mode 100644 index 0000000000..88593f9f9d --- /dev/null +++ b/cloudformation/iot/aws-iot-topicruledestination_httpurldestinationsummary.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// TopicRuleDestination_HttpUrlDestinationSummary AWS CloudFormation Resource (AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html +type TopicRuleDestination_HttpUrlDestinationSummary struct { + + // ConfirmationUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html#cfn-iot-topicruledestination-httpurldestinationsummary-confirmationurl + ConfirmationUrl string `json:"ConfirmationUrl,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *TopicRuleDestination_HttpUrlDestinationSummary) AWSCloudFormationType() string { + return "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" +} diff --git a/cloudformation/kms/aws-kms-key.go b/cloudformation/kms/aws-kms-key.go index c73f996789..4c97967fc7 100644 --- a/cloudformation/kms/aws-kms-key.go +++ b/cloudformation/kms/aws-kms-key.go @@ -33,6 +33,11 @@ type Key struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keypolicy KeyPolicy interface{} `json:"KeyPolicy,omitempty"` + // KeySpec AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keyspec + KeySpec string `json:"KeySpec,omitempty"` + // KeyUsage AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keyusage diff --git a/cloudformation/lambda/aws-lambda-codesigningconfig.go b/cloudformation/lambda/aws-lambda-codesigningconfig.go new file mode 100644 index 0000000000..c68215014e --- /dev/null +++ b/cloudformation/lambda/aws-lambda-codesigningconfig.go @@ -0,0 +1,116 @@ +package lambda + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// CodeSigningConfig AWS CloudFormation Resource (AWS::Lambda::CodeSigningConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html +type CodeSigningConfig struct { + + // AllowedPublishers AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html#cfn-lambda-codesigningconfig-allowedpublishers + AllowedPublishers *CodeSigningConfig_AllowedPublishers `json:"AllowedPublishers,omitempty"` + + // CodeSigningPolicies AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html#cfn-lambda-codesigningconfig-codesigningpolicies + CodeSigningPolicies *CodeSigningConfig_CodeSigningPolicies `json:"CodeSigningPolicies,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html#cfn-lambda-codesigningconfig-description + Description string `json:"Description,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *CodeSigningConfig) AWSCloudFormationType() string { + return "AWS::Lambda::CodeSigningConfig" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r CodeSigningConfig) MarshalJSON() ([]byte, error) { + type Properties CodeSigningConfig + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *CodeSigningConfig) UnmarshalJSON(b []byte) error { + type Properties CodeSigningConfig + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = CodeSigningConfig(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/lambda/aws-lambda-codesigningconfig_allowedpublishers.go b/cloudformation/lambda/aws-lambda-codesigningconfig_allowedpublishers.go new file mode 100644 index 0000000000..f0f8d91345 --- /dev/null +++ b/cloudformation/lambda/aws-lambda-codesigningconfig_allowedpublishers.go @@ -0,0 +1,35 @@ +package lambda + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// CodeSigningConfig_AllowedPublishers AWS CloudFormation Resource (AWS::Lambda::CodeSigningConfig.AllowedPublishers) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-allowedpublishers.html +type CodeSigningConfig_AllowedPublishers struct { + + // SigningProfileVersionArns AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-allowedpublishers.html#cfn-lambda-codesigningconfig-allowedpublishers-signingprofileversionarns + SigningProfileVersionArns []string `json:"SigningProfileVersionArns,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *CodeSigningConfig_AllowedPublishers) AWSCloudFormationType() string { + return "AWS::Lambda::CodeSigningConfig.AllowedPublishers" +} diff --git a/cloudformation/lambda/aws-lambda-codesigningconfig_codesigningpolicies.go b/cloudformation/lambda/aws-lambda-codesigningconfig_codesigningpolicies.go new file mode 100644 index 0000000000..1bd7f6f813 --- /dev/null +++ b/cloudformation/lambda/aws-lambda-codesigningconfig_codesigningpolicies.go @@ -0,0 +1,35 @@ +package lambda + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// CodeSigningConfig_CodeSigningPolicies AWS CloudFormation Resource (AWS::Lambda::CodeSigningConfig.CodeSigningPolicies) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-codesigningpolicies.html +type CodeSigningConfig_CodeSigningPolicies struct { + + // UntrustedArtifactOnDeployment AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-codesigningpolicies.html#cfn-lambda-codesigningconfig-codesigningpolicies-untrustedartifactondeployment + UntrustedArtifactOnDeployment string `json:"UntrustedArtifactOnDeployment,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *CodeSigningConfig_CodeSigningPolicies) AWSCloudFormationType() string { + return "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies" +} diff --git a/cloudformation/lambda/aws-lambda-eventsourcemapping.go b/cloudformation/lambda/aws-lambda-eventsourcemapping.go index 6ca5e2816b..a1bc9595cd 100644 --- a/cloudformation/lambda/aws-lambda-eventsourcemapping.go +++ b/cloudformation/lambda/aws-lambda-eventsourcemapping.go @@ -62,6 +62,11 @@ type EventSourceMapping struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor ParallelizationFactor int `json:"ParallelizationFactor,omitempty"` + // PartialBatchResponse AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-partialbatchresponse + PartialBatchResponse bool `json:"PartialBatchResponse,omitempty"` + // Queues AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues @@ -82,6 +87,11 @@ type EventSourceMapping struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics Topics []string `json:"Topics,omitempty"` + // TumblingWindowInSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds + TumblingWindowInSeconds int `json:"TumblingWindowInSeconds,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/lambda/aws-lambda-function.go b/cloudformation/lambda/aws-lambda-function.go index 4dd5bec4f4..420ba990d1 100644 --- a/cloudformation/lambda/aws-lambda-function.go +++ b/cloudformation/lambda/aws-lambda-function.go @@ -18,6 +18,11 @@ type Function struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code Code *Function_Code `json:"Code,omitempty"` + // CodeSigningConfigArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn + CodeSigningConfigArn string `json:"CodeSigningConfigArn,omitempty"` + // DeadLetterConfig AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewall.go b/cloudformation/networkfirewall/aws-networkfirewall-firewall.go new file mode 100644 index 0000000000..52d082c0c8 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewall.go @@ -0,0 +1,146 @@ +package networkfirewall + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Firewall AWS CloudFormation Resource (AWS::NetworkFirewall::Firewall) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html +type Firewall struct { + + // DeleteProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-deleteprotection + DeleteProtection bool `json:"DeleteProtection,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-description + Description string `json:"Description,omitempty"` + + // FirewallName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-firewallname + FirewallName string `json:"FirewallName,omitempty"` + + // FirewallPolicyArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-firewallpolicyarn + FirewallPolicyArn string `json:"FirewallPolicyArn,omitempty"` + + // FirewallPolicyChangeProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-firewallpolicychangeprotection + FirewallPolicyChangeProtection bool `json:"FirewallPolicyChangeProtection,omitempty"` + + // SubnetChangeProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-subnetchangeprotection + SubnetChangeProtection bool `json:"SubnetChangeProtection,omitempty"` + + // SubnetMappings AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-subnetmappings + SubnetMappings []Firewall_SubnetMapping `json:"SubnetMappings,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-tags + Tags *Firewall_Tags `json:"Tags,omitempty"` + + // VpcId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-vpcid + VpcId string `json:"VpcId,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Firewall) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::Firewall" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Firewall) MarshalJSON() ([]byte, error) { + type Properties Firewall + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Firewall) UnmarshalJSON(b []byte) error { + type Properties Firewall + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Firewall(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/networkfirewall/aws-networkfirewall-firewall_subnetmapping.go b/cloudformation/networkfirewall/aws-networkfirewall-firewall_subnetmapping.go new file mode 100644 index 0000000000..87cf99a79d --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewall_subnetmapping.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Firewall_SubnetMapping AWS CloudFormation Resource (AWS::NetworkFirewall::Firewall.SubnetMapping) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-subnetmapping.html +type Firewall_SubnetMapping struct { + + // SubnetId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-subnetmapping.html#cfn-networkfirewall-firewall-subnetmapping-subnetid + SubnetId string `json:"SubnetId,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Firewall_SubnetMapping) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::Firewall.SubnetMapping" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewall_tags.go b/cloudformation/networkfirewall/aws-networkfirewall-firewall_tags.go new file mode 100644 index 0000000000..2c2a8e29ca --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewall_tags.go @@ -0,0 +1,36 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Firewall_Tags AWS CloudFormation Resource (AWS::NetworkFirewall::Firewall.Tags) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-tags.html +type Firewall_Tags struct { + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-tags.html#cfn-networkfirewall-firewall-tags-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Firewall_Tags) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::Firewall.Tags" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy.go new file mode 100644 index 0000000000..7c86131dde --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy.go @@ -0,0 +1,121 @@ +package networkfirewall + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html +type FirewallPolicy struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-description + Description string `json:"Description,omitempty"` + + // FirewallPolicy AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy + FirewallPolicy *FirewallPolicy_FirewallPolicy `json:"FirewallPolicy,omitempty"` + + // FirewallPolicyName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicyname + FirewallPolicyName string `json:"FirewallPolicyName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-tags + Tags *FirewallPolicy_Tags `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r FirewallPolicy) MarshalJSON() ([]byte, error) { + type Properties FirewallPolicy + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *FirewallPolicy) UnmarshalJSON(b []byte) error { + type Properties FirewallPolicy + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = FirewallPolicy(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/networkfirewall/aws-networkfirewall-firewallpolicy_actiondefinition.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_actiondefinition.go new file mode 100644 index 0000000000..d1f06a5ee5 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_actiondefinition.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_ActionDefinition AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.ActionDefinition) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-actiondefinition.html +type FirewallPolicy_ActionDefinition struct { + + // PublishMetricAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-actiondefinition.html#cfn-networkfirewall-firewallpolicy-actiondefinition-publishmetricaction + PublishMetricAction *FirewallPolicy_PublishMetricAction `json:"PublishMetricAction,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_ActionDefinition) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_customaction.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_customaction.go new file mode 100644 index 0000000000..09eec30195 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_customaction.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_CustomAction AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.CustomAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customaction.html +type FirewallPolicy_CustomAction struct { + + // ActionDefinition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customaction.html#cfn-networkfirewall-firewallpolicy-customaction-actiondefinition + ActionDefinition *FirewallPolicy_ActionDefinition `json:"ActionDefinition,omitempty"` + + // ActionName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customaction.html#cfn-networkfirewall-firewallpolicy-customaction-actionname + ActionName string `json:"ActionName,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_CustomAction) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.CustomAction" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_customactions.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_customactions.go new file mode 100644 index 0000000000..798b240ce6 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_customactions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_CustomActions AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.CustomActions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customactions.html +type FirewallPolicy_CustomActions struct { + + // CustomActions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customactions.html#cfn-networkfirewall-firewallpolicy-customactions-customactions + CustomActions []FirewallPolicy_CustomAction `json:"CustomActions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_CustomActions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.CustomActions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_dimension.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_dimension.go new file mode 100644 index 0000000000..62527aa2ec --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_dimension.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_Dimension AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.Dimension) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimension.html +type FirewallPolicy_Dimension struct { + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimension.html#cfn-networkfirewall-firewallpolicy-dimension-value + Value string `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_Dimension) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.Dimension" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_dimensions.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_dimensions.go new file mode 100644 index 0000000000..c1cfb39b8f --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_dimensions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_Dimensions AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.Dimensions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimensions.html +type FirewallPolicy_Dimensions struct { + + // Dimensions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimensions.html#cfn-networkfirewall-firewallpolicy-dimensions-dimensions + Dimensions []FirewallPolicy_Dimension `json:"Dimensions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_Dimensions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.Dimensions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go new file mode 100644 index 0000000000..fa65ebe07b --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go @@ -0,0 +1,55 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_FirewallPolicy AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html +type FirewallPolicy_FirewallPolicy struct { + + // StatefulRuleGroupReferences AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statefulrulegroupreferences + StatefulRuleGroupReferences *FirewallPolicy_StatefulRuleGroupReferences `json:"StatefulRuleGroupReferences,omitempty"` + + // StatelessCustomActions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statelesscustomactions + StatelessCustomActions *FirewallPolicy_CustomActions `json:"StatelessCustomActions,omitempty"` + + // StatelessDefaultActions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statelessdefaultactions + StatelessDefaultActions *FirewallPolicy_StatelessActions `json:"StatelessDefaultActions,omitempty"` + + // StatelessFragmentDefaultActions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statelessfragmentdefaultactions + StatelessFragmentDefaultActions *FirewallPolicy_StatelessActions `json:"StatelessFragmentDefaultActions,omitempty"` + + // StatelessRuleGroupReferences AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statelessrulegroupreferences + StatelessRuleGroupReferences *FirewallPolicy_StatelessRuleGroupReferences `json:"StatelessRuleGroupReferences,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_FirewallPolicy) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_publishmetricaction.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_publishmetricaction.go new file mode 100644 index 0000000000..fb40a888bc --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_publishmetricaction.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_PublishMetricAction AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-publishmetricaction.html +type FirewallPolicy_PublishMetricAction struct { + + // Dimensions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-publishmetricaction.html#cfn-networkfirewall-firewallpolicy-publishmetricaction-dimensions + Dimensions *FirewallPolicy_Dimensions `json:"Dimensions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_PublishMetricAction) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go new file mode 100644 index 0000000000..9154e33f4c --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_StatefulRuleGroupReference AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html +type FirewallPolicy_StatefulRuleGroupReference struct { + + // ResourceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html#cfn-networkfirewall-firewallpolicy-statefulrulegroupreference-resourcearn + ResourceArn string `json:"ResourceArn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_StatefulRuleGroupReference) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreferences.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreferences.go new file mode 100644 index 0000000000..4e3794d870 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreferences.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_StatefulRuleGroupReferences AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreferences.html +type FirewallPolicy_StatefulRuleGroupReferences struct { + + // StatefulRuleGroupReferences AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreferences.html#cfn-networkfirewall-firewallpolicy-statefulrulegroupreferences-statefulrulegroupreferences + StatefulRuleGroupReferences []FirewallPolicy_StatefulRuleGroupReference `json:"StatefulRuleGroupReferences,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_StatefulRuleGroupReferences) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessactions.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessactions.go new file mode 100644 index 0000000000..bc4b58b674 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessactions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_StatelessActions AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.StatelessActions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessactions.html +type FirewallPolicy_StatelessActions struct { + + // StatelessActions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessactions.html#cfn-networkfirewall-firewallpolicy-statelessactions-statelessactions + StatelessActions []string `json:"StatelessActions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_StatelessActions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.StatelessActions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessrulegroupreference.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessrulegroupreference.go new file mode 100644 index 0000000000..6ac3aadc36 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessrulegroupreference.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_StatelessRuleGroupReference AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html +type FirewallPolicy_StatelessRuleGroupReference struct { + + // Priority AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html#cfn-networkfirewall-firewallpolicy-statelessrulegroupreference-priority + Priority int `json:"Priority"` + + // ResourceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html#cfn-networkfirewall-firewallpolicy-statelessrulegroupreference-resourcearn + ResourceArn string `json:"ResourceArn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_StatelessRuleGroupReference) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessrulegroupreferences.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessrulegroupreferences.go new file mode 100644 index 0000000000..63b88522c6 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statelessrulegroupreferences.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FirewallPolicy_StatelessRuleGroupReferences AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreferences.html +type FirewallPolicy_StatelessRuleGroupReferences struct { + + // StatelessRuleGroupReferences AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreferences.html#cfn-networkfirewall-firewallpolicy-statelessrulegroupreferences-statelessrulegroupreferences + StatelessRuleGroupReferences []FirewallPolicy_StatelessRuleGroupReference `json:"StatelessRuleGroupReferences,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_StatelessRuleGroupReferences) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_tags.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_tags.go new file mode 100644 index 0000000000..628646fec9 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_tags.go @@ -0,0 +1,36 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// FirewallPolicy_Tags AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.Tags) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-tags.html +type FirewallPolicy_Tags struct { + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-tags.html#cfn-networkfirewall-firewallpolicy-tags-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FirewallPolicy_Tags) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.Tags" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration.go b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration.go new file mode 100644 index 0000000000..957b37f189 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration.go @@ -0,0 +1,106 @@ +package networkfirewall + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LoggingConfiguration AWS CloudFormation Resource (AWS::NetworkFirewall::LoggingConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html +type LoggingConfiguration struct { + + // LoggingConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html#cfn-networkfirewall-loggingconfiguration-loggingconfiguration + LoggingConfiguration *LoggingConfiguration_LoggingConfiguration `json:"LoggingConfiguration,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LoggingConfiguration) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::LoggingConfiguration" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r LoggingConfiguration) MarshalJSON() ([]byte, error) { + type Properties LoggingConfiguration + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *LoggingConfiguration) UnmarshalJSON(b []byte) error { + type Properties LoggingConfiguration + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = LoggingConfiguration(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/networkfirewall/aws-networkfirewall-loggingconfiguration_logdestinationconfig.go b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_logdestinationconfig.go new file mode 100644 index 0000000000..25d5922b4e --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_logdestinationconfig.go @@ -0,0 +1,45 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LoggingConfiguration_LogDestinationConfig AWS CloudFormation Resource (AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html +type LoggingConfiguration_LogDestinationConfig struct { + + // LogDestination AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html#cfn-networkfirewall-loggingconfiguration-logdestinationconfig-logdestination + LogDestination map[string]string `json:"LogDestination,omitempty"` + + // LogDestinationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html#cfn-networkfirewall-loggingconfiguration-logdestinationconfig-logdestinationtype + LogDestinationType string `json:"LogDestinationType,omitempty"` + + // LogType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html#cfn-networkfirewall-loggingconfiguration-logdestinationconfig-logtype + LogType string `json:"LogType,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LoggingConfiguration_LogDestinationConfig) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_logdestinationconfigs.go b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_logdestinationconfigs.go new file mode 100644 index 0000000000..8bf494c4af --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_logdestinationconfigs.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LoggingConfiguration_LogDestinationConfigs AWS CloudFormation Resource (AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfigs.html +type LoggingConfiguration_LogDestinationConfigs struct { + + // LogDestinationConfigs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfigs.html#cfn-networkfirewall-loggingconfiguration-logdestinationconfigs-logdestinationconfigs + LogDestinationConfigs []LoggingConfiguration_LogDestinationConfig `json:"LogDestinationConfigs,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LoggingConfiguration_LogDestinationConfigs) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_loggingconfiguration.go b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_loggingconfiguration.go new file mode 100644 index 0000000000..c3f508491f --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-loggingconfiguration_loggingconfiguration.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LoggingConfiguration_LoggingConfiguration AWS CloudFormation Resource (AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-loggingconfiguration.html +type LoggingConfiguration_LoggingConfiguration struct { + + // LogDestinationConfigs AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-loggingconfiguration.html#cfn-networkfirewall-loggingconfiguration-loggingconfiguration-logdestinationconfigs + LogDestinationConfigs *LoggingConfiguration_LogDestinationConfigs `json:"LogDestinationConfigs,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LoggingConfiguration_LoggingConfiguration) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup.go new file mode 100644 index 0000000000..5c90befc21 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup.go @@ -0,0 +1,136 @@ +package networkfirewall + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html +type RuleGroup struct { + + // Capacity AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-capacity + Capacity int `json:"Capacity"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-description + Description string `json:"Description,omitempty"` + + // RuleGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup + RuleGroup *RuleGroup_RuleGroup `json:"RuleGroup,omitempty"` + + // RuleGroupId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroupid + RuleGroupId string `json:"RuleGroupId,omitempty"` + + // RuleGroupName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroupname + RuleGroupName string `json:"RuleGroupName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-tags + Tags *RuleGroup_Tags `json:"Tags,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-type + Type string `json:"Type,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r RuleGroup) MarshalJSON() ([]byte, error) { + type Properties RuleGroup + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *RuleGroup) UnmarshalJSON(b []byte) error { + type Properties RuleGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = RuleGroup(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/networkfirewall/aws-networkfirewall-rulegroup_actiondefinition.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_actiondefinition.go new file mode 100644 index 0000000000..9bf89541ba --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_actiondefinition.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_ActionDefinition AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.ActionDefinition) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html +type RuleGroup_ActionDefinition struct { + + // PublishMetricAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html#cfn-networkfirewall-rulegroup-actiondefinition-publishmetricaction + PublishMetricAction *RuleGroup_PublishMetricAction `json:"PublishMetricAction,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_ActionDefinition) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.ActionDefinition" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_address.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_address.go new file mode 100644 index 0000000000..81518faaad --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_address.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_Address AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Address) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html +type RuleGroup_Address struct { + + // AddressDefinition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html#cfn-networkfirewall-rulegroup-address-addressdefinition + AddressDefinition string `json:"AddressDefinition,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Address) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Address" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_addresses.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_addresses.go new file mode 100644 index 0000000000..9a00e490ce --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_addresses.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_Addresses AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Addresses) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-addresses.html +type RuleGroup_Addresses struct { + + // Addresses AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-addresses.html#cfn-networkfirewall-rulegroup-addresses-addresses + Addresses []RuleGroup_Address `json:"Addresses,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Addresses) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Addresses" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_customaction.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_customaction.go new file mode 100644 index 0000000000..3dcd6d1e76 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_customaction.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_CustomAction AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.CustomAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html +type RuleGroup_CustomAction struct { + + // ActionDefinition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html#cfn-networkfirewall-rulegroup-customaction-actiondefinition + ActionDefinition *RuleGroup_ActionDefinition `json:"ActionDefinition,omitempty"` + + // ActionName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html#cfn-networkfirewall-rulegroup-customaction-actionname + ActionName string `json:"ActionName,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_CustomAction) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.CustomAction" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_customactions.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_customactions.go new file mode 100644 index 0000000000..950d6294d3 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_customactions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_CustomActions AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.CustomActions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customactions.html +type RuleGroup_CustomActions struct { + + // CustomActions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customactions.html#cfn-networkfirewall-rulegroup-customactions-customactions + CustomActions []RuleGroup_CustomAction `json:"CustomActions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_CustomActions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.CustomActions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_dimension.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_dimension.go new file mode 100644 index 0000000000..9b20bb3697 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_dimension.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_Dimension AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Dimension) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html +type RuleGroup_Dimension struct { + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html#cfn-networkfirewall-rulegroup-dimension-value + Value string `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Dimension) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Dimension" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_dimensions.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_dimensions.go new file mode 100644 index 0000000000..851170580d --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_dimensions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_Dimensions AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Dimensions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimensions.html +type RuleGroup_Dimensions struct { + + // Dimensions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimensions.html#cfn-networkfirewall-rulegroup-dimensions-dimensions + Dimensions []RuleGroup_Dimension `json:"Dimensions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Dimensions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Dimensions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_flags.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_flags.go new file mode 100644 index 0000000000..3f542d8cb4 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_flags.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_Flags AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Flags) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-flags.html +type RuleGroup_Flags struct { + + // Flags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-flags.html#cfn-networkfirewall-rulegroup-flags-flags + Flags []string `json:"Flags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Flags) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Flags" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_header.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_header.go new file mode 100644 index 0000000000..ee40ca89a1 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_header.go @@ -0,0 +1,60 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_Header AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Header) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html +type RuleGroup_Header struct { + + // Destination AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-destination + Destination string `json:"Destination,omitempty"` + + // DestinationPort AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-destinationport + DestinationPort string `json:"DestinationPort,omitempty"` + + // Direction AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-direction + Direction string `json:"Direction,omitempty"` + + // Protocol AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-protocol + Protocol string `json:"Protocol,omitempty"` + + // Source AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-source + Source string `json:"Source,omitempty"` + + // SourcePort AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-sourceport + SourcePort string `json:"SourcePort,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Header) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Header" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ipset.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ipset.go new file mode 100644 index 0000000000..3484415f6c --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ipset.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_IPSet AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.IPSet) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html +type RuleGroup_IPSet struct { + + // Definition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html#cfn-networkfirewall-rulegroup-ipset-definition + Definition *RuleGroup_VariableDefinitionList `json:"Definition,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_IPSet) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.IPSet" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_matchattributes.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_matchattributes.go new file mode 100644 index 0000000000..1fffd9344c --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_matchattributes.go @@ -0,0 +1,60 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_MatchAttributes AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.MatchAttributes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html +type RuleGroup_MatchAttributes struct { + + // DestinationPorts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-destinationports + DestinationPorts *RuleGroup_PortRanges `json:"DestinationPorts,omitempty"` + + // Destinations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-destinations + Destinations *RuleGroup_Addresses `json:"Destinations,omitempty"` + + // Protocols AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-protocols + Protocols *RuleGroup_ProtocolNumbers `json:"Protocols,omitempty"` + + // SourcePorts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-sourceports + SourcePorts *RuleGroup_PortRanges `json:"SourcePorts,omitempty"` + + // Sources AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-sources + Sources *RuleGroup_Addresses `json:"Sources,omitempty"` + + // TCPFlags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html#cfn-networkfirewall-rulegroup-matchattributes-tcpflags + TCPFlags *RuleGroup_TCPFlags `json:"TCPFlags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_MatchAttributes) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.MatchAttributes" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portrange.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portrange.go new file mode 100644 index 0000000000..279ca7d398 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portrange.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_PortRange AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.PortRange) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html +type RuleGroup_PortRange struct { + + // FromPort AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html#cfn-networkfirewall-rulegroup-portrange-fromport + FromPort int `json:"FromPort"` + + // ToPort AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html#cfn-networkfirewall-rulegroup-portrange-toport + ToPort int `json:"ToPort"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_PortRange) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.PortRange" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portranges.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portranges.go new file mode 100644 index 0000000000..cbd8e3d931 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portranges.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_PortRanges AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.PortRanges) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portranges.html +type RuleGroup_PortRanges struct { + + // PortRanges AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portranges.html#cfn-networkfirewall-rulegroup-portranges-portranges + PortRanges []RuleGroup_PortRange `json:"PortRanges,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_PortRanges) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.PortRanges" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portset.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portset.go new file mode 100644 index 0000000000..3529df588c --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_portset.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_PortSet AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.PortSet) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html +type RuleGroup_PortSet struct { + + // Definition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html#cfn-networkfirewall-rulegroup-portset-definition + Definition *RuleGroup_VariableDefinitionList `json:"Definition,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_PortSet) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.PortSet" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_protocolnumbers.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_protocolnumbers.go new file mode 100644 index 0000000000..cb24655950 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_protocolnumbers.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_ProtocolNumbers AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.ProtocolNumbers) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-protocolnumbers.html +type RuleGroup_ProtocolNumbers struct { + + // ProtocolNumbers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-protocolnumbers.html#cfn-networkfirewall-rulegroup-protocolnumbers-protocolnumbers + ProtocolNumbers []int `json:"ProtocolNumbers,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_ProtocolNumbers) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.ProtocolNumbers" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_publishmetricaction.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_publishmetricaction.go new file mode 100644 index 0000000000..aa1c1c5b73 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_publishmetricaction.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_PublishMetricAction AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.PublishMetricAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html +type RuleGroup_PublishMetricAction struct { + + // Dimensions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html#cfn-networkfirewall-rulegroup-publishmetricaction-dimensions + Dimensions *RuleGroup_Dimensions `json:"Dimensions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_PublishMetricAction) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.PublishMetricAction" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruledefinition.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruledefinition.go new file mode 100644 index 0000000000..159552aeb6 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruledefinition.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RuleDefinition AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RuleDefinition) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html +type RuleGroup_RuleDefinition struct { + + // Actions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html#cfn-networkfirewall-rulegroup-ruledefinition-actions + Actions []string `json:"Actions,omitempty"` + + // MatchAttributes AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html#cfn-networkfirewall-rulegroup-ruledefinition-matchattributes + MatchAttributes *RuleGroup_MatchAttributes `json:"MatchAttributes,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RuleDefinition) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RuleDefinition" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go new file mode 100644 index 0000000000..17a32cfc1a --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RuleGroup AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RuleGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html +type RuleGroup_RuleGroup struct { + + // RuleVariables AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-rulevariables + RuleVariables *RuleGroup_RuleVariables `json:"RuleVariables,omitempty"` + + // RulesSource AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-rulessource + RulesSource *RuleGroup_RulesSource `json:"RulesSource,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RuleGroup) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RuleGroup" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruleoption.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruleoption.go new file mode 100644 index 0000000000..839894e136 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruleoption.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RuleOption AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RuleOption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html +type RuleGroup_RuleOption struct { + + // Keyword AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html#cfn-networkfirewall-rulegroup-ruleoption-keyword + Keyword string `json:"Keyword,omitempty"` + + // Settings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html#cfn-networkfirewall-rulegroup-ruleoption-settings + Settings []string `json:"Settings,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RuleOption) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RuleOption" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruleoptions.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruleoptions.go new file mode 100644 index 0000000000..e760a69da4 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_ruleoptions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RuleOptions AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RuleOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoptions.html +type RuleGroup_RuleOptions struct { + + // RuleOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoptions.html#cfn-networkfirewall-rulegroup-ruleoptions-ruleoptions + RuleOptions []RuleGroup_RuleOption `json:"RuleOptions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RuleOptions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RuleOptions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulessource.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulessource.go new file mode 100644 index 0000000000..8f6a197979 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulessource.go @@ -0,0 +1,50 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RulesSource AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RulesSource) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html +type RuleGroup_RulesSource struct { + + // RulesSourceList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-rulessourcelist + RulesSourceList *RuleGroup_RulesSourceList `json:"RulesSourceList,omitempty"` + + // RulesString AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-rulesstring + RulesString string `json:"RulesString,omitempty"` + + // StatefulRules AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-statefulrules + StatefulRules *RuleGroup_StatefulRules `json:"StatefulRules,omitempty"` + + // StatelessRulesAndCustomActions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-statelessrulesandcustomactions + StatelessRulesAndCustomActions *RuleGroup_StatelessRulesAndCustomActions `json:"StatelessRulesAndCustomActions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RulesSource) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RulesSource" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulessourcelist.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulessourcelist.go new file mode 100644 index 0000000000..192130779d --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulessourcelist.go @@ -0,0 +1,45 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RulesSourceList AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RulesSourceList) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html +type RuleGroup_RulesSourceList struct { + + // GeneratedRulesType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-generatedrulestype + GeneratedRulesType string `json:"GeneratedRulesType,omitempty"` + + // TargetTypes AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-targettypes + TargetTypes *RuleGroup_TargetTypes `json:"TargetTypes,omitempty"` + + // Targets AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-targets + Targets []string `json:"Targets,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RulesSourceList) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RulesSourceList" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulevariables.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulevariables.go new file mode 100644 index 0000000000..b0e7bb2837 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulevariables.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_RuleVariables AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.RuleVariables) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html +type RuleGroup_RuleVariables struct { + + // IPSets AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html#cfn-networkfirewall-rulegroup-rulevariables-ipsets + IPSets map[string]RuleGroup_IPSet `json:"IPSets,omitempty"` + + // PortSets AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html#cfn-networkfirewall-rulegroup-rulevariables-portsets + PortSets map[string]RuleGroup_PortSet `json:"PortSets,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_RuleVariables) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.RuleVariables" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulrule.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulrule.go new file mode 100644 index 0000000000..d16a960e77 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulrule.go @@ -0,0 +1,45 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_StatefulRule AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.StatefulRule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html +type RuleGroup_StatefulRule struct { + + // Action AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html#cfn-networkfirewall-rulegroup-statefulrule-action + Action string `json:"Action,omitempty"` + + // Header AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html#cfn-networkfirewall-rulegroup-statefulrule-header + Header *RuleGroup_Header `json:"Header,omitempty"` + + // RuleOptions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html#cfn-networkfirewall-rulegroup-statefulrule-ruleoptions + RuleOptions *RuleGroup_RuleOptions `json:"RuleOptions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_StatefulRule) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.StatefulRule" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulrules.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulrules.go new file mode 100644 index 0000000000..bc4fe43523 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulrules.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_StatefulRules AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.StatefulRules) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrules.html +type RuleGroup_StatefulRules struct { + + // StatefulRules AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrules.html#cfn-networkfirewall-rulegroup-statefulrules-statefulrules + StatefulRules []RuleGroup_StatefulRule `json:"StatefulRules,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_StatefulRules) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.StatefulRules" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrule.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrule.go new file mode 100644 index 0000000000..6ceec3e92d --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrule.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_StatelessRule AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.StatelessRule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html +type RuleGroup_StatelessRule struct { + + // Priority AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html#cfn-networkfirewall-rulegroup-statelessrule-priority + Priority int `json:"Priority"` + + // RuleDefinition AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html#cfn-networkfirewall-rulegroup-statelessrule-ruledefinition + RuleDefinition *RuleGroup_RuleDefinition `json:"RuleDefinition,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_StatelessRule) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.StatelessRule" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrules.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrules.go new file mode 100644 index 0000000000..98e38de3b9 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrules.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_StatelessRules AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.StatelessRules) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrules.html +type RuleGroup_StatelessRules struct { + + // StatelessRules AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrules.html#cfn-networkfirewall-rulegroup-statelessrules-statelessrules + StatelessRules []RuleGroup_StatelessRule `json:"StatelessRules,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_StatelessRules) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.StatelessRules" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrulesandcustomactions.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrulesandcustomactions.go new file mode 100644 index 0000000000..12b742c2a8 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statelessrulesandcustomactions.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_StatelessRulesAndCustomActions AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html +type RuleGroup_StatelessRulesAndCustomActions struct { + + // CustomActions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html#cfn-networkfirewall-rulegroup-statelessrulesandcustomactions-customactions + CustomActions *RuleGroup_CustomActions `json:"CustomActions,omitempty"` + + // StatelessRules AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html#cfn-networkfirewall-rulegroup-statelessrulesandcustomactions-statelessrules + StatelessRules *RuleGroup_StatelessRules `json:"StatelessRules,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_StatelessRulesAndCustomActions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tags.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tags.go new file mode 100644 index 0000000000..0143d3c5a1 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tags.go @@ -0,0 +1,36 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// RuleGroup_Tags AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.Tags) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tags.html +type RuleGroup_Tags struct { + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tags.html#cfn-networkfirewall-rulegroup-tags-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_Tags) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.Tags" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_targettypes.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_targettypes.go new file mode 100644 index 0000000000..57f314da34 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_targettypes.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_TargetTypes AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.TargetTypes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-targettypes.html +type RuleGroup_TargetTypes struct { + + // TargetTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-targettypes.html#cfn-networkfirewall-rulegroup-targettypes-targettypes + TargetTypes []string `json:"TargetTypes,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_TargetTypes) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.TargetTypes" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tcpflagfield.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tcpflagfield.go new file mode 100644 index 0000000000..9f7c7a6e2a --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tcpflagfield.go @@ -0,0 +1,40 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_TCPFlagField AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.TCPFlagField) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html +type RuleGroup_TCPFlagField struct { + + // Flags AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html#cfn-networkfirewall-rulegroup-tcpflagfield-flags + Flags *RuleGroup_Flags `json:"Flags,omitempty"` + + // Masks AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html#cfn-networkfirewall-rulegroup-tcpflagfield-masks + Masks *RuleGroup_Flags `json:"Masks,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_TCPFlagField) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.TCPFlagField" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tcpflags.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tcpflags.go new file mode 100644 index 0000000000..d7808a2b01 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_tcpflags.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_TCPFlags AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.TCPFlags) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflags.html +type RuleGroup_TCPFlags struct { + + // TCPFlags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflags.html#cfn-networkfirewall-rulegroup-tcpflags-tcpflags + TCPFlags []RuleGroup_TCPFlagField `json:"TCPFlags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_TCPFlags) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.TCPFlags" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_variabledefinitionlist.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_variabledefinitionlist.go new file mode 100644 index 0000000000..48a2d2cce6 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_variabledefinitionlist.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// RuleGroup_VariableDefinitionList AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.VariableDefinitionList) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-variabledefinitionlist.html +type RuleGroup_VariableDefinitionList struct { + + // VariableDefinitionList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-variabledefinitionlist.html#cfn-networkfirewall-rulegroup-variabledefinitionlist-variabledefinitionlist + VariableDefinitionList []string `json:"VariableDefinitionList,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *RuleGroup_VariableDefinitionList) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" +} diff --git a/cloudformation/s3/aws-s3-bucket.go b/cloudformation/s3/aws-s3-bucket.go index 79f3df01fb..23f3400de7 100644 --- a/cloudformation/s3/aws-s3-bucket.go +++ b/cloudformation/s3/aws-s3-bucket.go @@ -43,6 +43,11 @@ type Bucket struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-crossoriginconfig CorsConfiguration *Bucket_CorsConfiguration `json:"CorsConfiguration,omitempty"` + // IntelligentTieringConfigurations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-intelligenttieringconfigurations + IntelligentTieringConfigurations []Bucket_IntelligentTieringConfiguration `json:"IntelligentTieringConfigurations,omitempty"` + // InventoryConfigurations AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations @@ -78,6 +83,11 @@ type Bucket struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-objectlockenabled ObjectLockEnabled bool `json:"ObjectLockEnabled,omitempty"` + // OwnershipControls AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-ownershipcontrols + OwnershipControls *Bucket_OwnershipControls `json:"OwnershipControls,omitempty"` + // PublicAccessBlockConfiguration AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-publicaccessblockconfiguration diff --git a/cloudformation/s3/aws-s3-bucket_intelligenttieringconfiguration.go b/cloudformation/s3/aws-s3-bucket_intelligenttieringconfiguration.go new file mode 100644 index 0000000000..8e3bfd637b --- /dev/null +++ b/cloudformation/s3/aws-s3-bucket_intelligenttieringconfiguration.go @@ -0,0 +1,55 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_IntelligentTieringConfiguration AWS CloudFormation Resource (AWS::S3::Bucket.IntelligentTieringConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html +type Bucket_IntelligentTieringConfiguration struct { + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-id + Id string `json:"Id,omitempty"` + + // Prefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-prefix + Prefix string `json:"Prefix,omitempty"` + + // Status AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-status + Status string `json:"Status,omitempty"` + + // TagFilters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-tagfilters + TagFilters []Bucket_TagFilter `json:"TagFilters,omitempty"` + + // Tierings AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-tierings + Tierings []Bucket_Tiering `json:"Tierings,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Bucket_IntelligentTieringConfiguration) AWSCloudFormationType() string { + return "AWS::S3::Bucket.IntelligentTieringConfiguration" +} diff --git a/cloudformation/s3/aws-s3-bucket_ownershipcontrols.go b/cloudformation/s3/aws-s3-bucket_ownershipcontrols.go new file mode 100644 index 0000000000..6317a4a326 --- /dev/null +++ b/cloudformation/s3/aws-s3-bucket_ownershipcontrols.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_OwnershipControls AWS CloudFormation Resource (AWS::S3::Bucket.OwnershipControls) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html +type Bucket_OwnershipControls struct { + + // Rules AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html#cfn-s3-bucket-ownershipcontrols-rules + Rules []Bucket_OwnershipControlsRule `json:"Rules,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Bucket_OwnershipControls) AWSCloudFormationType() string { + return "AWS::S3::Bucket.OwnershipControls" +} diff --git a/cloudformation/s3/aws-s3-bucket_ownershipcontrolsrule.go b/cloudformation/s3/aws-s3-bucket_ownershipcontrolsrule.go new file mode 100644 index 0000000000..bb132a0856 --- /dev/null +++ b/cloudformation/s3/aws-s3-bucket_ownershipcontrolsrule.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_OwnershipControlsRule AWS CloudFormation Resource (AWS::S3::Bucket.OwnershipControlsRule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html +type Bucket_OwnershipControlsRule struct { + + // ObjectOwnership AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html#cfn-s3-bucket-ownershipcontrolsrule-objectownership + ObjectOwnership string `json:"ObjectOwnership,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Bucket_OwnershipControlsRule) AWSCloudFormationType() string { + return "AWS::S3::Bucket.OwnershipControlsRule" +} diff --git a/cloudformation/s3/aws-s3-bucket_tiering.go b/cloudformation/s3/aws-s3-bucket_tiering.go new file mode 100644 index 0000000000..ae34e31b98 --- /dev/null +++ b/cloudformation/s3/aws-s3-bucket_tiering.go @@ -0,0 +1,40 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_Tiering AWS CloudFormation Resource (AWS::S3::Bucket.Tiering) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html +type Bucket_Tiering struct { + + // AccessTier AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html#cfn-s3-bucket-tiering-accesstier + AccessTier string `json:"AccessTier,omitempty"` + + // Days AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html#cfn-s3-bucket-tiering-days + Days int `json:"Days"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Bucket_Tiering) AWSCloudFormationType() string { + return "AWS::S3::Bucket.Tiering" +} diff --git a/cloudformation/s3/aws-s3-storagelens.go b/cloudformation/s3/aws-s3-storagelens.go new file mode 100644 index 0000000000..616eb892dc --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens.go @@ -0,0 +1,112 @@ +package s3 + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// StorageLens AWS CloudFormation Resource (AWS::S3::StorageLens) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html +type StorageLens struct { + + // StorageLensConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html#cfn-s3-storagelens-storagelensconfiguration + StorageLensConfiguration *StorageLens_StorageLensConfiguration `json:"StorageLensConfiguration,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html#cfn-s3-storagelens-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens) AWSCloudFormationType() string { + return "AWS::S3::StorageLens" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r StorageLens) MarshalJSON() ([]byte, error) { + type Properties StorageLens + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *StorageLens) UnmarshalJSON(b []byte) error { + type Properties StorageLens + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = StorageLens(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/s3/aws-s3-storagelens_accountlevel.go b/cloudformation/s3/aws-s3-storagelens_accountlevel.go new file mode 100644 index 0000000000..3e8e532ebf --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_accountlevel.go @@ -0,0 +1,40 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_AccountLevel AWS CloudFormation Resource (AWS::S3::StorageLens.AccountLevel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html +type StorageLens_AccountLevel struct { + + // ActivityMetrics AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html#cfn-s3-storagelens-accountlevel-activitymetrics + ActivityMetrics *StorageLens_ActivityMetrics `json:"ActivityMetrics,omitempty"` + + // BucketLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html#cfn-s3-storagelens-accountlevel-bucketlevel + BucketLevel *StorageLens_BucketLevel `json:"BucketLevel,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_AccountLevel) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.AccountLevel" +} diff --git a/cloudformation/s3/aws-s3-storagelens_activitymetrics.go b/cloudformation/s3/aws-s3-storagelens_activitymetrics.go new file mode 100644 index 0000000000..a29b8d534c --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_activitymetrics.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_ActivityMetrics AWS CloudFormation Resource (AWS::S3::StorageLens.ActivityMetrics) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html +type StorageLens_ActivityMetrics struct { + + // IsEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html#cfn-s3-storagelens-activitymetrics-isenabled + IsEnabled bool `json:"IsEnabled,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_ActivityMetrics) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.ActivityMetrics" +} diff --git a/cloudformation/s3/aws-s3-storagelens_awsorg.go b/cloudformation/s3/aws-s3-storagelens_awsorg.go new file mode 100644 index 0000000000..132e33359f --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_awsorg.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_AwsOrg AWS CloudFormation Resource (AWS::S3::StorageLens.AwsOrg) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html +type StorageLens_AwsOrg struct { + + // Arn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html#cfn-s3-storagelens-awsorg-arn + Arn string `json:"Arn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_AwsOrg) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.AwsOrg" +} diff --git a/cloudformation/s3/aws-s3-storagelens_bucketlevel.go b/cloudformation/s3/aws-s3-storagelens_bucketlevel.go new file mode 100644 index 0000000000..0c60b84aab --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_bucketlevel.go @@ -0,0 +1,40 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_BucketLevel AWS CloudFormation Resource (AWS::S3::StorageLens.BucketLevel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html +type StorageLens_BucketLevel struct { + + // ActivityMetrics AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html#cfn-s3-storagelens-bucketlevel-activitymetrics + ActivityMetrics *StorageLens_ActivityMetrics `json:"ActivityMetrics,omitempty"` + + // PrefixLevel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html#cfn-s3-storagelens-bucketlevel-prefixlevel + PrefixLevel *StorageLens_PrefixLevel `json:"PrefixLevel,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_BucketLevel) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.BucketLevel" +} diff --git a/cloudformation/s3/aws-s3-storagelens_bucketsandregions.go b/cloudformation/s3/aws-s3-storagelens_bucketsandregions.go new file mode 100644 index 0000000000..d8ef695dcb --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_bucketsandregions.go @@ -0,0 +1,40 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_BucketsAndRegions AWS CloudFormation Resource (AWS::S3::StorageLens.BucketsAndRegions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html +type StorageLens_BucketsAndRegions struct { + + // Buckets AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html#cfn-s3-storagelens-bucketsandregions-buckets + Buckets []string `json:"Buckets,omitempty"` + + // Regions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html#cfn-s3-storagelens-bucketsandregions-regions + Regions []string `json:"Regions,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_BucketsAndRegions) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.BucketsAndRegions" +} diff --git a/cloudformation/s3/aws-s3-storagelens_dataexport.go b/cloudformation/s3/aws-s3-storagelens_dataexport.go new file mode 100644 index 0000000000..f673148b22 --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_dataexport.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_DataExport AWS CloudFormation Resource (AWS::S3::StorageLens.DataExport) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html +type StorageLens_DataExport struct { + + // S3BucketDestination AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html#cfn-s3-storagelens-dataexport-s3bucketdestination + S3BucketDestination *StorageLens_S3BucketDestination `json:"S3BucketDestination,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_DataExport) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.DataExport" +} diff --git a/cloudformation/s3/aws-s3-storagelens_encryption.go b/cloudformation/s3/aws-s3-storagelens_encryption.go new file mode 100644 index 0000000000..84185390f9 --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_encryption.go @@ -0,0 +1,30 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_Encryption AWS CloudFormation Resource (AWS::S3::StorageLens.Encryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-encryption.html +type StorageLens_Encryption struct { + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_Encryption) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.Encryption" +} diff --git a/cloudformation/s3/aws-s3-storagelens_prefixlevel.go b/cloudformation/s3/aws-s3-storagelens_prefixlevel.go new file mode 100644 index 0000000000..371cbcd518 --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_prefixlevel.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_PrefixLevel AWS CloudFormation Resource (AWS::S3::StorageLens.PrefixLevel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html +type StorageLens_PrefixLevel struct { + + // StorageMetrics AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html#cfn-s3-storagelens-prefixlevel-storagemetrics + StorageMetrics *StorageLens_PrefixLevelStorageMetrics `json:"StorageMetrics,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_PrefixLevel) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.PrefixLevel" +} diff --git a/cloudformation/s3/aws-s3-storagelens_prefixlevelstoragemetrics.go b/cloudformation/s3/aws-s3-storagelens_prefixlevelstoragemetrics.go new file mode 100644 index 0000000000..37cbc0872c --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_prefixlevelstoragemetrics.go @@ -0,0 +1,40 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_PrefixLevelStorageMetrics AWS CloudFormation Resource (AWS::S3::StorageLens.PrefixLevelStorageMetrics) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html +type StorageLens_PrefixLevelStorageMetrics struct { + + // IsEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html#cfn-s3-storagelens-prefixlevelstoragemetrics-isenabled + IsEnabled bool `json:"IsEnabled,omitempty"` + + // SelectionCriteria AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html#cfn-s3-storagelens-prefixlevelstoragemetrics-selectioncriteria + SelectionCriteria *StorageLens_SelectionCriteria `json:"SelectionCriteria,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_PrefixLevelStorageMetrics) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.PrefixLevelStorageMetrics" +} diff --git a/cloudformation/s3/aws-s3-storagelens_s3bucketdestination.go b/cloudformation/s3/aws-s3-storagelens_s3bucketdestination.go new file mode 100644 index 0000000000..52c722b315 --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_s3bucketdestination.go @@ -0,0 +1,60 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_S3BucketDestination AWS CloudFormation Resource (AWS::S3::StorageLens.S3BucketDestination) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html +type StorageLens_S3BucketDestination struct { + + // AccountId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-accountid + AccountId string `json:"AccountId,omitempty"` + + // Arn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-arn + Arn string `json:"Arn,omitempty"` + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-encryption + Encryption *StorageLens_Encryption `json:"Encryption,omitempty"` + + // Format AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-format + Format string `json:"Format,omitempty"` + + // OutputSchemaVersion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-outputschemaversion + OutputSchemaVersion string `json:"OutputSchemaVersion,omitempty"` + + // Prefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-prefix + Prefix string `json:"Prefix,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_S3BucketDestination) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.S3BucketDestination" +} diff --git a/cloudformation/s3/aws-s3-storagelens_selectioncriteria.go b/cloudformation/s3/aws-s3-storagelens_selectioncriteria.go new file mode 100644 index 0000000000..bcf7d9599a --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_selectioncriteria.go @@ -0,0 +1,45 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_SelectionCriteria AWS CloudFormation Resource (AWS::S3::StorageLens.SelectionCriteria) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html +type StorageLens_SelectionCriteria struct { + + // Delimiter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html#cfn-s3-storagelens-selectioncriteria-delimiter + Delimiter string `json:"Delimiter,omitempty"` + + // MaxDepth AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html#cfn-s3-storagelens-selectioncriteria-maxdepth + MaxDepth int `json:"MaxDepth,omitempty"` + + // MinStorageBytesPercentage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html#cfn-s3-storagelens-selectioncriteria-minstoragebytespercentage + MinStorageBytesPercentage float64 `json:"MinStorageBytesPercentage,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_SelectionCriteria) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.SelectionCriteria" +} diff --git a/cloudformation/s3/aws-s3-storagelens_storagelensconfiguration.go b/cloudformation/s3/aws-s3-storagelens_storagelensconfiguration.go new file mode 100644 index 0000000000..54f454c46f --- /dev/null +++ b/cloudformation/s3/aws-s3-storagelens_storagelensconfiguration.go @@ -0,0 +1,70 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StorageLens_StorageLensConfiguration AWS CloudFormation Resource (AWS::S3::StorageLens.StorageLensConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html +type StorageLens_StorageLensConfiguration struct { + + // AccountLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-accountlevel + AccountLevel *StorageLens_AccountLevel `json:"AccountLevel,omitempty"` + + // AwsOrg AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-awsorg + AwsOrg *StorageLens_AwsOrg `json:"AwsOrg,omitempty"` + + // DataExport AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-dataexport + DataExport *StorageLens_DataExport `json:"DataExport,omitempty"` + + // Exclude AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-exclude + Exclude *StorageLens_BucketsAndRegions `json:"Exclude,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-id + Id string `json:"Id,omitempty"` + + // Include AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-include + Include *StorageLens_BucketsAndRegions `json:"Include,omitempty"` + + // IsEnabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-isenabled + IsEnabled bool `json:"IsEnabled"` + + // StorageLensArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-storagelensarn + StorageLensArn string `json:"StorageLensArn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *StorageLens_StorageLensConfiguration) AWSCloudFormationType() string { + return "AWS::S3::StorageLens.StorageLensConfiguration" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go b/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go index 06142ba382..1ae740a1e1 100644 --- a/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go +++ b/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go @@ -43,6 +43,11 @@ type Model_ContainerDefinition struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-modelpackagename ModelPackageName string `json:"ModelPackageName,omitempty"` + // MultiModelConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-multimodelconfig + MultiModelConfig *Model_MultiModelConfig `json:"MultiModelConfig,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/sagemaker/aws-sagemaker-model_multimodelconfig.go b/cloudformation/sagemaker/aws-sagemaker-model_multimodelconfig.go new file mode 100644 index 0000000000..81ce686764 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-model_multimodelconfig.go @@ -0,0 +1,35 @@ +package sagemaker + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Model_MultiModelConfig AWS CloudFormation Resource (AWS::SageMaker::Model.MultiModelConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-multimodelconfig.html +type Model_MultiModelConfig struct { + + // ModelCacheSetting AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-multimodelconfig.html#cfn-sagemaker-model-containerdefinition-multimodelconfig-modelcachesetting + ModelCacheSetting string `json:"ModelCacheSetting,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Model_MultiModelConfig) AWSCloudFormationType() string { + return "AWS::SageMaker::Model.MultiModelConfig" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-monitoringschedule.go b/cloudformation/sagemaker/aws-sagemaker-monitoringschedule.go index 0190997cca..e4e6155b62 100644 --- a/cloudformation/sagemaker/aws-sagemaker-monitoringschedule.go +++ b/cloudformation/sagemaker/aws-sagemaker-monitoringschedule.go @@ -13,11 +13,6 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html type MonitoringSchedule struct { - // CreationTime AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html#cfn-sagemaker-monitoringschedule-creationtime - CreationTime string `json:"CreationTime,omitempty"` - // EndpointName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html#cfn-sagemaker-monitoringschedule-endpointname @@ -28,11 +23,6 @@ type MonitoringSchedule struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html#cfn-sagemaker-monitoringschedule-failurereason FailureReason string `json:"FailureReason,omitempty"` - // LastModifiedTime AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html#cfn-sagemaker-monitoringschedule-lastmodifiedtime - LastModifiedTime string `json:"LastModifiedTime,omitempty"` - // LastMonitoringExecutionSummary AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-monitoringschedule.html#cfn-sagemaker-monitoringschedule-lastmonitoringexecutionsummary diff --git a/cloudformation/signer/aws-signer-profilepermission.go b/cloudformation/signer/aws-signer-profilepermission.go new file mode 100644 index 0000000000..c97e81ec35 --- /dev/null +++ b/cloudformation/signer/aws-signer-profilepermission.go @@ -0,0 +1,126 @@ +package signer + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// ProfilePermission AWS CloudFormation Resource (AWS::Signer::ProfilePermission) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html +type ProfilePermission struct { + + // Action AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html#cfn-signer-profilepermission-action + Action string `json:"Action,omitempty"` + + // Principal AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html#cfn-signer-profilepermission-principal + Principal string `json:"Principal,omitempty"` + + // ProfileName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html#cfn-signer-profilepermission-profilename + ProfileName string `json:"ProfileName,omitempty"` + + // ProfileVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html#cfn-signer-profilepermission-profileversion + ProfileVersion string `json:"ProfileVersion,omitempty"` + + // StatementId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-profilepermission.html#cfn-signer-profilepermission-statementid + StatementId string `json:"StatementId,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ProfilePermission) AWSCloudFormationType() string { + return "AWS::Signer::ProfilePermission" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r ProfilePermission) MarshalJSON() ([]byte, error) { + type Properties ProfilePermission + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *ProfilePermission) UnmarshalJSON(b []byte) error { + type Properties ProfilePermission + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ProfilePermission(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/signer/aws-signer-signingprofile.go b/cloudformation/signer/aws-signer-signingprofile.go new file mode 100644 index 0000000000..983053b8c1 --- /dev/null +++ b/cloudformation/signer/aws-signer-signingprofile.go @@ -0,0 +1,117 @@ +package signer + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// SigningProfile AWS CloudFormation Resource (AWS::Signer::SigningProfile) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html +type SigningProfile struct { + + // PlatformId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html#cfn-signer-signingprofile-platformid + PlatformId string `json:"PlatformId,omitempty"` + + // SignatureValidityPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html#cfn-signer-signingprofile-signaturevalidityperiod + SignatureValidityPeriod *SigningProfile_SignatureValidityPeriod `json:"SignatureValidityPeriod,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-signer-signingprofile.html#cfn-signer-signingprofile-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SigningProfile) AWSCloudFormationType() string { + return "AWS::Signer::SigningProfile" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r SigningProfile) MarshalJSON() ([]byte, error) { + type Properties SigningProfile + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *SigningProfile) UnmarshalJSON(b []byte) error { + type Properties SigningProfile + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = SigningProfile(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.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/signer/aws-signer-signingprofile_signaturevalidityperiod.go b/cloudformation/signer/aws-signer-signingprofile_signaturevalidityperiod.go new file mode 100644 index 0000000000..209f310d8f --- /dev/null +++ b/cloudformation/signer/aws-signer-signingprofile_signaturevalidityperiod.go @@ -0,0 +1,40 @@ +package signer + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SigningProfile_SignatureValidityPeriod AWS CloudFormation Resource (AWS::Signer::SigningProfile.SignatureValidityPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-signer-signingprofile-signaturevalidityperiod.html +type SigningProfile_SignatureValidityPeriod struct { + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-signer-signingprofile-signaturevalidityperiod.html#cfn-signer-signingprofile-signaturevalidityperiod-type + Type string `json:"Type,omitempty"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-signer-signingprofile-signaturevalidityperiod.html#cfn-signer-signingprofile-signaturevalidityperiod-value + Value int `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SigningProfile_SignatureValidityPeriod) AWSCloudFormationType() string { + return "AWS::Signer::SigningProfile.SignatureValidityPeriod" +} diff --git a/cloudformation/synthetics/aws-synthetics-canary_runconfig.go b/cloudformation/synthetics/aws-synthetics-canary_runconfig.go index 858109a742..cdd0fa3545 100644 --- a/cloudformation/synthetics/aws-synthetics-canary_runconfig.go +++ b/cloudformation/synthetics/aws-synthetics-canary_runconfig.go @@ -13,6 +13,11 @@ type Canary_RunConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html#cfn-synthetics-canary-runconfig-activetracing ActiveTracing bool `json:"ActiveTracing,omitempty"` + // EnvironmentVariables AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html#cfn-synthetics-canary-runconfig-environmentvariables + EnvironmentVariables map[string]string `json:"EnvironmentVariables,omitempty"` + // MemoryInMB AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html#cfn-synthetics-canary-runconfig-memoryinmb diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 10a87cbee6..58390d3e4e 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -969,6 +969,9 @@ var CloudformationSchema = `{ "BuildSpec": { "type": "string" }, + "CustomHeaders": { + "type": "string" + }, "CustomRules": { "items": { "$ref": "#/definitions/AWS::Amplify::App.CustomRule" @@ -5751,6 +5754,9 @@ var CloudformationSchema = `{ "AccessToken": { "type": "string" }, + "ClientCredentialsArn": { + "type": "string" + }, "ConnectorOAuthRequest": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" }, @@ -7515,6 +7521,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { @@ -7527,6 +7548,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": { "additionalProperties": false, "properties": { @@ -7561,9 +7594,39 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy" }, @@ -8007,9 +8070,15 @@ var CloudformationSchema = `{ "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck" }, + "OutlierDetection": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection" + }, "PortMapping": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping" }, @@ -8108,6 +8177,30 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.OutlierDetection": { + "additionalProperties": false, + "properties": { + "BaseEjectionDuration": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "Interval": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "MaxEjectionPercent": { + "type": "number" + }, + "MaxServerErrors": { + "type": "number" + } + }, + "required": [ + "BaseEjectionDuration", + "Interval", + "MaxEjectionPercent", + "MaxServerErrors" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.PortMapping": { "additionalProperties": false, "properties": { @@ -8196,6 +8289,63 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualNodeSpec": { "additionalProperties": false, "properties": { @@ -8223,6 +8373,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualServiceBackend": { "additionalProperties": false, "properties": { @@ -12885,6 +13047,12 @@ var CloudformationSchema = `{ "DesiredvCpus": { "type": "number" }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, "Ec2KeyPair": { "type": "string" }, @@ -12944,6 +13112,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { @@ -15210,6 +15393,12 @@ var CloudformationSchema = `{ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15350,6 +15539,12 @@ var CloudformationSchema = `{ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15726,6 +15921,90 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::CloudFront::KeyGroup": { + "additionalProperties": false, + "properties": { + "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": { + "KeyGroupConfig": { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig" + } + }, + "required": [ + "KeyGroupConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::KeyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::KeyGroup.KeyGroupConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Items", + "Name" + ], + "type": "object" + }, "AWS::CloudFront::OriginRequestPolicy": { "additionalProperties": false, "properties": { @@ -15869,7 +16148,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig": { + "AWS::CloudFront::PublicKey": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15901,36 +16180,18 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "EndPoints": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" - }, - "type": "array" - }, - "Fields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "SamplingRate": { - "type": "number" + "PublicKeyConfig": { + "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig" } }, "required": [ - "EndPoints", - "Fields", - "Name", - "SamplingRate" + "PublicKeyConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::RealtimeLogConfig" + "AWS::CloudFront::PublicKey" ], "type": "string" }, @@ -15949,39 +16210,142 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "AWS::CloudFront::PublicKey.PublicKeyConfig": { "additionalProperties": false, "properties": { - "KinesisStreamConfig": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + "CallerReference": { + "type": "string" }, - "StreamType": { + "Comment": { "type": "string" - } - }, - "required": [ - "KinesisStreamConfig", - "StreamType" - ], - "type": "object" - }, - "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { - "additionalProperties": false, - "properties": { - "RoleArn": { + }, + "EncodedKey": { "type": "string" }, - "StreamArn": { + "Name": { "type": "string" } }, "required": [ - "RoleArn", - "StreamArn" + "CallerReference", + "EncodedKey", + "Name" ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution": { + "AWS::CloudFront::RealtimeLogConfig": { + "additionalProperties": false, + "properties": { + "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": { + "EndPoints": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" + }, + "type": "array" + }, + "Fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "EndPoints", + "Fields", + "Name", + "SamplingRate" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::RealtimeLogConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "additionalProperties": false, + "properties": { + "KinesisStreamConfig": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + }, + "StreamType": { + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamArn" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19278,6 +19642,9 @@ var CloudformationSchema = `{ "Code": { "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code" }, + "ConnectionArn": { + "type": "string" + }, "EnableIssues": { "type": "boolean" }, @@ -19298,7 +19665,6 @@ var CloudformationSchema = `{ } }, "required": [ - "RepositoryAccessToken", "RepositoryName", "RepositoryOwner" ], @@ -22474,6 +22840,25 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.Action": { + "additionalProperties": false, + "properties": { + "CrossRegionCopy": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CrossRegionCopy", + "Name" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { @@ -22495,6 +22880,25 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Target" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": { "additionalProperties": false, "properties": { @@ -22536,6 +22940,58 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventParameters": { + "additionalProperties": false, + "properties": { + "DescriptionRegex": { + "type": "string" + }, + "EventType": { + "type": "string" + }, + "SnapshotOwner": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EventType", + "SnapshotOwner" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventSource": { + "additionalProperties": false, + "properties": { + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.FastRestoreRule": { "additionalProperties": false, "properties": { @@ -22572,6 +23028,15 @@ var CloudformationSchema = `{ "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" + }, + "type": "array" + }, + "EventSource": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource" + }, "Parameters": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters" }, @@ -22597,11 +23062,6 @@ var CloudformationSchema = `{ "type": "array" } }, - "required": [ - "ResourceTypes", - "Schedules", - "TargetTags" - ], "type": "object" }, "AWS::DLM::LifecyclePolicy.RetainRule": { @@ -22643,6 +23103,12 @@ var CloudformationSchema = `{ "RetainRule": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, + "ShareRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" + }, + "type": "array" + }, "TagsToAdd": { "items": { "$ref": "#/definitions/Tag" @@ -22658,71 +23124,89 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::DLM::LifecyclePolicy.ShareRule": { "additionalProperties": false, "properties": { - "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": { - "CertificateIdentifier": { - "type": "string" - }, - "CertificatePem": { - "type": "string" - }, - "CertificateWallet": { - "type": "string" - } + "TargetAccounts": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DMS::Certificate" - ], - "type": "string" + "UnshareInterval": { + "type": "number" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "UnshareIntervalUnit": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::DMS::Certificate": { + "additionalProperties": false, + "properties": { + "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": { + "CertificateIdentifier": { + "type": "string" + }, + "CertificatePem": { + "type": "string" + }, + "CertificateWallet": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23368,7 +23852,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::DataBrew::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23400,49 +23884,143 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" + "FormatOptions": { + "type": "object" }, - "Description": { - "type": "string" + "Input": { + "type": "object" }, "Name": { "type": "string" }, - "ParameterObjects": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + "$ref": "#/definitions/Tag" }, "type": "array" + } + }, + "required": [ + "Input", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Job": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "ParameterValues": { + { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" }, - "PipelineObjects": { + "EncryptionKeyArn": { + "type": "string" + }, + "EncryptionMode": { + "type": "string" + }, + "LogSubscription": { + "type": "string" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutputLocation": { + "type": "object" + }, + "Outputs": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + "$ref": "#/definitions/AWS::DataBrew::Job.Output" }, "type": "array" }, - "PipelineTags": { + "ProjectName": { + "type": "string" + }, + "Recipe": { + "type": "object" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "Timeout": { + "type": "number" + }, + "Type": { + "type": "string" } }, "required": [ "Name", - "ParameterObjects" + "RoleArn", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::DataBrew::Job" ], "type": "string" }, @@ -23461,115 +24039,904 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::DataBrew::Job.Output": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { + "CompressionFormat": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { + "Format": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" - }, - "type": "array" + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, - "Id": { - "type": "string" - } - }, - "required": [ - "Attributes", - "Id" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterValue": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" + "Overwrite": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "PartitionColumns": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" } }, "required": [ - "Fields", - "Id", - "Name" + "Location" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.PipelineTag": { + "AWS::DataBrew::Job.S3Location": { "additionalProperties": false, "properties": { - "Key": { + "Bucket": { "type": "string" }, - "Value": { + "Key": { "type": "string" } }, "required": [ - "Key", - "Value" + "Bucket" ], "type": "object" }, - "AWS::Detective::Graph": { + "AWS::DataBrew::Project": { + "additionalProperties": false, + "properties": { + "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": { + "DatasetName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecipeName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sample": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatasetName", + "Name", + "RecipeName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Steps" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Recipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.Action": { + "additionalProperties": false, + "properties": { + "Operation": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "required": [ + "Operation" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.ConditionExpression": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Condition", + "TargetColumn" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeParameters": { + "additionalProperties": false, + "properties": { + "AggregateFunction": { + "type": "string" + }, + "Base": { + "type": "string" + }, + "CaseStatement": { + "type": "string" + }, + "CategoryMap": { + "type": "string" + }, + "CharsToRemove": { + "type": "string" + }, + "CollapseConsecutiveWhitespace": { + "type": "string" + }, + "ColumnDataType": { + "type": "string" + }, + "ColumnRange": { + "type": "string" + }, + "Count": { + "type": "string" + }, + "CustomCharacters": { + "type": "string" + }, + "CustomStopWords": { + "type": "string" + }, + "CustomValue": { + "type": "string" + }, + "DatasetsColumns": { + "type": "string" + }, + "DateAddValue": { + "type": "string" + }, + "DateTimeFormat": { + "type": "string" + }, + "DateTimeParameters": { + "type": "string" + }, + "DeleteOtherRows": { + "type": "string" + }, + "Delimiter": { + "type": "string" + }, + "EndPattern": { + "type": "string" + }, + "EndPosition": { + "type": "string" + }, + "EndValue": { + "type": "string" + }, + "ExpandContractions": { + "type": "string" + }, + "Exponent": { + "type": "string" + }, + "FalseString": { + "type": "string" + }, + "GroupByAggFunctionOptions": { + "type": "string" + }, + "GroupByColumns": { + "type": "string" + }, + "HiddenColumns": { + "type": "string" + }, + "IgnoreCase": { + "type": "string" + }, + "IncludeInSplit": { + "type": "string" + }, + "Input": { + "type": "object" + }, + "Interval": { + "type": "string" + }, + "IsText": { + "type": "string" + }, + "JoinKeys": { + "type": "string" + }, + "JoinType": { + "type": "string" + }, + "LeftColumns": { + "type": "string" + }, + "Limit": { + "type": "string" + }, + "LowerBound": { + "type": "string" + }, + "MapType": { + "type": "string" + }, + "ModeType": { + "type": "string" + }, + "MultiLine": { + "type": "boolean" + }, + "NumRows": { + "type": "string" + }, + "NumRowsAfter": { + "type": "string" + }, + "NumRowsBefore": { + "type": "string" + }, + "OrderByColumn": { + "type": "string" + }, + "OrderByColumns": { + "type": "string" + }, + "Other": { + "type": "string" + }, + "Pattern": { + "type": "string" + }, + "PatternOption1": { + "type": "string" + }, + "PatternOption2": { + "type": "string" + }, + "PatternOptions": { + "type": "string" + }, + "Period": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "RemoveAllPunctuation": { + "type": "string" + }, + "RemoveAllQuotes": { + "type": "string" + }, + "RemoveAllWhitespace": { + "type": "string" + }, + "RemoveCustomCharacters": { + "type": "string" + }, + "RemoveCustomValue": { + "type": "string" + }, + "RemoveLeadingAndTrailingPunctuation": { + "type": "string" + }, + "RemoveLeadingAndTrailingQuotes": { + "type": "string" + }, + "RemoveLeadingAndTrailingWhitespace": { + "type": "string" + }, + "RemoveLetters": { + "type": "string" + }, + "RemoveNumbers": { + "type": "string" + }, + "RemoveSourceColumn": { + "type": "string" + }, + "RemoveSpecialCharacters": { + "type": "string" + }, + "RightColumns": { + "type": "string" + }, + "SampleSize": { + "type": "string" + }, + "SampleType": { + "type": "string" + }, + "SecondInput": { + "type": "string" + }, + "SecondaryInputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" + }, + "type": "array" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceColumn": { + "type": "string" + }, + "SourceColumn1": { + "type": "string" + }, + "SourceColumn2": { + "type": "string" + }, + "SourceColumns": { + "type": "string" + }, + "StartColumnIndex": { + "type": "string" + }, + "StartPattern": { + "type": "string" + }, + "StartPosition": { + "type": "string" + }, + "StartValue": { + "type": "string" + }, + "StemmingMode": { + "type": "string" + }, + "StepCount": { + "type": "string" + }, + "StepIndex": { + "type": "string" + }, + "StopWordsMode": { + "type": "string" + }, + "Strategy": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "TargetColumnNames": { + "type": "string" + }, + "TargetDateFormat": { + "type": "string" + }, + "TargetIndex": { + "type": "string" + }, + "TimeZone": { + "type": "string" + }, + "TokenizerPattern": { + "type": "string" + }, + "TrueString": { + "type": "string" + }, + "UdfLang": { + "type": "string" + }, + "Units": { + "type": "string" + }, + "UnpivotColumn": { + "type": "string" + }, + "UpperBound": { + "type": "string" + }, + "UseNewDataFrame": { + "type": "string" + }, + "Value": { + "type": "string" + }, + "Value1": { + "type": "string" + }, + "Value2": { + "type": "string" + }, + "ValueColumn": { + "type": "string" + }, + "ViewFrame": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeStep": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action" + }, + "ConditionExpressions": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" + }, + "type": "array" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.SecondaryInput": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Schedule": { + "additionalProperties": false, + "properties": { + "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": { + "CronExpression": { + "type": "string" + }, + "JobNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CronExpression", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Schedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "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": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + }, + "type": "array" + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + }, + "type": "array" + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + }, + "type": "array" + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "ParameterObjects" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataPipeline::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + }, + "type": "array" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Detective::Graph": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24852,6 +26219,9 @@ var CloudformationSchema = `{ "ClientCidrBlock": { "type": "string" }, + "ClientConnectOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" + }, "ConnectionLogOptions": { "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions" }, @@ -24957,6 +26327,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LambdaFunctionArn": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": { "additionalProperties": false, "properties": { @@ -26671,6 +28056,9 @@ var CloudformationSchema = `{ "properties": { "CapacityReservationId": { "type": "string" + }, + "CapacityReservationResourceGroupArn": { + "type": "string" } }, "type": "object" @@ -26732,6 +28120,15 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.HibernationOptions": { "additionalProperties": false, "properties": { @@ -26810,6 +28207,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions" + }, "HibernationOptions": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" }, @@ -26930,6 +28330,9 @@ var CloudformationSchema = `{ "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -26960,6 +28363,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "NetworkCardIndex": { + "type": "number" + }, "NetworkInterfaceId": { "type": "string" }, @@ -30365,6 +31771,12 @@ var CloudformationSchema = `{ "AcceptanceRequired": { "type": "boolean" }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" + }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -36461,7 +37873,7 @@ var CloudformationSchema = `{ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "UserPoolArn": { "type": "string" @@ -36514,7 +37926,7 @@ var CloudformationSchema = `{ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "TokenEndpoint": { "type": "string" @@ -38214,13 +39626,14 @@ var CloudformationSchema = `{ "Principal": { "type": "string" }, + "Statement": { + "type": "object" + }, "StatementId": { "type": "string" } }, "required": [ - "Action", - "Principal", "StatementId" ], "type": "object" @@ -40584,7 +41997,6 @@ var CloudformationSchema = `{ } }, "required": [ - "ConnectionProperties", "ConnectionType" ], "type": "object" @@ -40751,6 +42163,9 @@ var CloudformationSchema = `{ "AWS::Glue::Crawler.S3Target": { "additionalProperties": false, "properties": { + "ConnectionName": { + "type": "string" + }, "Exclusions": { "items": { "type": "string" @@ -40982,9 +42397,36 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Glue::Database.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -40996,6 +42438,24 @@ var CloudformationSchema = `{ }, "Parameters": { "type": "object" + }, + "TargetDatabase": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier" + } + }, + "type": "object" + }, + "AWS::Glue::Database.PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal" } }, "type": "object" @@ -41331,6 +42791,9 @@ var CloudformationSchema = `{ "Timeout": { "type": "number" }, + "TransformEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption" + }, "TransformParameters": { "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters" }, @@ -41421,6 +42884,33 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Glue::MLTransform.MLUserDataEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MLUserDataEncryptionMode": { + "type": "string" + } + }, + "required": [ + "MLUserDataEncryptionMode" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.TransformEncryption": { + "additionalProperties": false, + "properties": { + "MLUserDataEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption" + }, + "TaskRunSecurityConfigurationName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::MLTransform.TransformParameters": { "additionalProperties": false, "properties": { @@ -41468,30 +42958,506 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Partition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Partition.Column": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Partition.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "type": "string" + }, + "SortOrder": { + "type": "number" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Glue::Partition.PartitionInput": { + "additionalProperties": false, + "properties": { + "Parameters": { + "type": "object" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::Glue::Partition.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" + }, + "Compressed": { + "type": "boolean" + }, + "InputFormat": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Registry": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Registry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema": { + "additionalProperties": false, + "properties": { + "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": { + "CheckpointVersion": { + "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion" + }, + "Compatibility": { + "type": "string" + }, + "DataFormat": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Registry": { + "$ref": "#/definitions/AWS::Glue::Schema.Registry" + }, + "SchemaDefinition": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Compatibility", + "DataFormat", + "Name", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema.Registry": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Schema.SchemaVersion": { + "additionalProperties": false, + "properties": { + "IsLatest": { + "type": "boolean" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Schema": { + "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema" + }, + "SchemaDefinition": { + "type": "string" + } + }, + "required": [ + "Schema", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SchemaVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SchemaVersion.Schema": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersionMetadata": { + "additionalProperties": false, + "properties": { + "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": { + "Key": { "type": "string" }, - "DatabaseName": { + "SchemaVersionId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { + "Value": { "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "Key", + "SchemaVersionId", + "Value" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::Glue::SchemaVersionMetadata" ], "type": "string" }, @@ -41510,147 +43476,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, "AWS::Glue::SecurityConfiguration": { "additionalProperties": false, "properties": { @@ -41964,6 +43789,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Glue::Table.TableIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { @@ -41994,6 +43834,9 @@ var CloudformationSchema = `{ "TableType": { "type": "string" }, + "TargetTable": { + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier" + }, "ViewExpandedText": { "type": "string" }, @@ -48224,6 +50067,76 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IoT::TopicRuleDestination": { + "additionalProperties": false, + "properties": { + "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": { + "HttpUrlProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::TopicRuleDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary": { + "additionalProperties": false, + "properties": { + "ConfirmationUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { @@ -50382,6 +52295,9 @@ var CloudformationSchema = `{ "KeyPolicy": { "type": "object" }, + "KeySpec": { + "type": "string" + }, "KeyUsage": { "type": "string" }, @@ -54370,6 +56286,101 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Lambda::CodeSigningConfig": { + "additionalProperties": false, + "properties": { + "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": { + "AllowedPublishers": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.AllowedPublishers" + }, + "CodeSigningPolicies": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.CodeSigningPolicies" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "AllowedPublishers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::CodeSigningConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.AllowedPublishers": { + "additionalProperties": false, + "properties": { + "SigningProfileVersionArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SigningProfileVersionArns" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies": { + "additionalProperties": false, + "properties": { + "UntrustedArtifactOnDeployment": { + "type": "string" + } + }, + "required": [ + "UntrustedArtifactOnDeployment" + ], + "type": "object" + }, "AWS::Lambda::EventInvokeConfig": { "additionalProperties": false, "properties": { @@ -54543,6 +56554,9 @@ var CloudformationSchema = `{ "ParallelizationFactor": { "type": "number" }, + "PartialBatchResponse": { + "type": "boolean" + }, "Queues": { "items": { "type": "string" @@ -54563,6 +56577,9 @@ var CloudformationSchema = `{ "type": "string" }, "type": "array" + }, + "TumblingWindowInSeconds": { + "type": "number" } }, "required": [ @@ -54657,6 +56674,9 @@ var CloudformationSchema = `{ "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, + "CodeSigningConfigArn": { + "type": "string" + }, "DeadLetterConfig": { "$ref": "#/definitions/AWS::Lambda::Function.DeadLetterConfig" }, @@ -61108,34 +63128,590 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DBSubnetGroupDescription": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall": { + "additionalProperties": false, + "properties": { + "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": { + "DeleteProtection": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "FirewallName": { + "type": "string" + }, + "FirewallPolicyArn": { + "type": "string" + }, + "FirewallPolicyChangeProtection": { + "type": "boolean" + }, + "SubnetChangeProtection": { + "type": "boolean" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" + }, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.Tags" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "FirewallName", + "FirewallPolicyArn", + "SubnetMappings", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::Firewall" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.SubnetMapping": { + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" + }, + "FirewallPolicyName": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Tags" + } + }, + "required": [ + "FirewallPolicy", + "FirewallPolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::FirewallPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences" + }, + "StatelessCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomActions" + }, + "StatelessDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessFragmentDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessActions": { + "additionalProperties": false, + "properties": { + "StatelessActions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Priority", + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatelessRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "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": { + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" + } + }, + "required": [ + "LoggingConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig": { + "additionalProperties": false, + "properties": { + "LogDestination": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "LogDestinationType": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "LogDestination", + "LogDestinationType", + "LogType" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs" + } + }, + "required": [ + "LogDestinationConfigs" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup": { + "additionalProperties": false, + "properties": { + "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": { + "Capacity": { + "type": "number" + }, + "Description": { "type": "string" }, - "DBSubnetGroupName": { + "RuleGroup": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup" + }, + "RuleGroupId": { "type": "string" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "RuleGroupName": { + "type": "string" }, "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Tags" + }, + "Type": { + "type": "string" } }, "required": [ - "DBSubnetGroupDescription", - "SubnetIds" + "Capacity", + "RuleGroupName", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBSubnetGroup" + "AWS::NetworkFirewall::RuleGroup" ], "type": "string" }, @@ -61154,6 +63730,496 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Addresses": { + "additionalProperties": false, + "properties": { + "Addresses": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Flags": { + "additionalProperties": false, + "properties": { + "Flags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationPort": { + "type": "string" + }, + "Direction": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourcePort": { + "type": "string" + } + }, + "required": [ + "Destination", + "DestinationPort", + "Direction", + "Protocol", + "Source", + "SourcePort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.MatchAttributes": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Destinations": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "Protocols": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ProtocolNumbers" + }, + "SourcePorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Sources": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "TCPFlags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlags" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRanges": { + "additionalProperties": false, + "properties": { + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.ProtocolNumbers": { + "additionalProperties": false, + "properties": { + "ProtocolNumbers": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleDefinition": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MatchAttributes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes" + } + }, + "required": [ + "Actions", + "MatchAttributes" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleGroup": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "type": "string" + }, + "Settings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOptions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" + } + }, + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList" + }, + "RulesString": { + "type": "string" + }, + "StatefulRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRules" + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "type": "string" + }, + "TargetTypes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TargetTypes" + }, + "Targets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GeneratedRulesType", + "TargetTypes", + "Targets" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Header": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header" + }, + "RuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOptions" + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRules": { + "additionalProperties": false, + "properties": { + "StatefulRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "RuleDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition" + } + }, + "required": [ + "Priority", + "RuleDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRules": { + "additionalProperties": false, + "properties": { + "StatelessRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomActions" + }, + "StatelessRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRules" + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + }, + "Masks": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + } + }, + "required": [ + "Flags" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlags": { + "additionalProperties": false, + "properties": { + "TCPFlags": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TargetTypes": { + "additionalProperties": false, + "properties": { + "TargetTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.VariableDefinitionList": { + "additionalProperties": false, + "properties": { + "VariableDefinitionList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::NetworkManager::CustomerGatewayAssociation": { "additionalProperties": false, "properties": { @@ -69347,6 +72413,12 @@ var CloudformationSchema = `{ "CorsConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration" }, + "IntelligentTieringConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" + }, + "type": "array" + }, "InventoryConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" @@ -69374,6 +72446,9 @@ var CloudformationSchema = `{ "ObjectLockEnabled": { "type": "boolean" }, + "OwnershipControls": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls" + }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration" }, @@ -69636,6 +72711,38 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + }, + "Tierings": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Tiering" + }, + "type": "array" + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, "AWS::S3::Bucket.InventoryConfiguration": { "additionalProperties": false, "properties": { @@ -69828,6 +72935,30 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::S3::Bucket.OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "type": "string" + } + }, + "type": "object" + }, "AWS::S3::Bucket.PublicAccessBlockConfiguration": { "additionalProperties": false, "properties": { @@ -70208,6 +73339,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::S3::Bucket.Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "type": "string" + }, + "Days": { + "type": "number" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, "AWS::S3::Bucket.TopicConfiguration": { "additionalProperties": false, "properties": { @@ -70344,6 +73491,261 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::S3::StorageLens": { + "additionalProperties": false, + "properties": { + "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": { + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, "AWS::SDB::Domain": { "additionalProperties": false, "properties": { @@ -73254,6 +76656,9 @@ var CloudformationSchema = `{ }, "ModelPackageName": { "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.MultiModelConfig" } }, "type": "object" @@ -73270,6 +76675,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::SageMaker::Model.MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -73324,18 +76738,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CreationTime": { - "type": "string" - }, "EndpointName": { "type": "string" }, "FailureReason": { "type": "string" }, - "LastModifiedTime": { - "type": "string" - }, "LastMonitoringExecutionSummary": { "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary" }, @@ -75895,14 +79303,94 @@ var CloudformationSchema = `{ "type": "array" } }, - "required": [ - "Name" - ], + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::PublicDnsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + }, + "Name": { + "type": "string" + }, + "NamespaceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::PublicDnsNamespace" + "AWS::ServiceDiscovery::Service" ], "type": "string" }, @@ -75916,12 +79404,75 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ServiceDiscovery::Service": { + "AWS::ServiceDiscovery::Service.DnsConfig": { + "additionalProperties": false, + "properties": { + "DnsRecords": { + "items": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + }, + "type": "array" + }, + "NamespaceId": { + "type": "string" + }, + "RoutingPolicy": { + "type": "string" + } + }, + "required": [ + "DnsRecords" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsRecord": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "TTL", + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + }, + "ResourcePath": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Signer::ProfilePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -75953,36 +79504,33 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Action": { "type": "string" }, - "DnsConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" - }, - "HealthCheckConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" - }, - "HealthCheckCustomConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + "Principal": { + "type": "string" }, - "Name": { + "ProfileName": { "type": "string" }, - "NamespaceId": { + "ProfileVersion": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "StatementId": { + "type": "string" } }, + "required": [ + "Action", + "Principal", + "ProfileName", + "StatementId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::Service" + "AWS::Signer::ProfilePermission" ], "type": "string" }, @@ -75996,69 +79544,89 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsConfig": { + "AWS::Signer::SigningProfile": { "additionalProperties": false, "properties": { - "DnsRecords": { - "items": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + "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": { + "PlatformId": { + "type": "string" + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "PlatformId" + ], + "type": "object" }, - "NamespaceId": { + "Type": { + "enum": [ + "AWS::Signer::SigningProfile" + ], "type": "string" }, - "RoutingPolicy": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "DnsRecords" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsRecord": { + "AWS::Signer::SigningProfile.SignatureValidityPeriod": { "additionalProperties": false, "properties": { - "TTL": { - "type": "number" - }, "Type": { "type": "string" - } - }, - "required": [ - "TTL", - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { - "type": "number" }, - "ResourcePath": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { + "Value": { "type": "number" } }, @@ -76453,6 +80021,15 @@ var CloudformationSchema = `{ "ActiveTracing": { "type": "boolean" }, + "EnvironmentVariables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, "MemoryInMB": { "type": "number" }, @@ -80974,9 +84551,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::CloudFront::Distribution" }, + { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup" + }, { "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy" }, + { + "$ref": "#/definitions/AWS::CloudFront::PublicKey" + }, { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, @@ -81148,6 +84731,21 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::DMS::ReplicationTask" }, + { + "$ref": "#/definitions/AWS::DataBrew::Dataset" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Job" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Project" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Recipe" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Schedule" + }, { "$ref": "#/definitions/AWS::DataPipeline::Pipeline" }, @@ -81565,6 +85163,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Glue::Partition" }, + { + "$ref": "#/definitions/AWS::Glue::Registry" + }, + { + "$ref": "#/definitions/AWS::Glue::Schema" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersion" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersionMetadata" + }, { "$ref": "#/definitions/AWS::Glue::SecurityConfiguration" }, @@ -81742,6 +85352,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination" + }, { "$ref": "#/definitions/AWS::IoTAnalytics::Channel" }, @@ -81829,6 +85442,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Lambda::Alias" }, + { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig" + }, { "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig" }, @@ -81934,6 +85550,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Neptune::DBSubnetGroup" }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup" + }, { "$ref": "#/definitions/AWS::NetworkManager::CustomerGatewayAssociation" }, @@ -82162,6 +85790,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::S3::BucketPolicy" }, + { + "$ref": "#/definitions/AWS::S3::StorageLens" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -82324,6 +85955,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::ServiceDiscovery::Service" }, + { + "$ref": "#/definitions/AWS::Signer::ProfilePermission" + }, + { + "$ref": "#/definitions/AWS::Signer::SigningProfile" + }, { "$ref": "#/definitions/AWS::StepFunctions::Activity" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 5b3be0bb3d..4828bc6368 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -966,6 +966,9 @@ "BuildSpec": { "type": "string" }, + "CustomHeaders": { + "type": "string" + }, "CustomRules": { "items": { "$ref": "#/definitions/AWS::Amplify::App.CustomRule" @@ -5748,6 +5751,9 @@ "AccessToken": { "type": "string" }, + "ClientCredentialsArn": { + "type": "string" + }, "ConnectorOAuthRequest": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" }, @@ -7512,6 +7518,21 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { @@ -7524,6 +7545,18 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": { "additionalProperties": false, "properties": { @@ -7558,9 +7591,39 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy" }, @@ -8004,9 +8067,15 @@ "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck" }, + "OutlierDetection": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection" + }, "PortMapping": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping" }, @@ -8105,6 +8174,30 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.OutlierDetection": { + "additionalProperties": false, + "properties": { + "BaseEjectionDuration": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "Interval": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "MaxEjectionPercent": { + "type": "number" + }, + "MaxServerErrors": { + "type": "number" + } + }, + "required": [ + "BaseEjectionDuration", + "Interval", + "MaxEjectionPercent", + "MaxServerErrors" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.PortMapping": { "additionalProperties": false, "properties": { @@ -8193,6 +8286,63 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualNodeSpec": { "additionalProperties": false, "properties": { @@ -8220,6 +8370,18 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualServiceBackend": { "additionalProperties": false, "properties": { @@ -12882,6 +13044,12 @@ "DesiredvCpus": { "type": "number" }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, "Ec2KeyPair": { "type": "string" }, @@ -12941,6 +13109,21 @@ ], "type": "object" }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { @@ -15207,6 +15390,12 @@ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15347,6 +15536,12 @@ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15723,6 +15918,90 @@ }, "type": "object" }, + "AWS::CloudFront::KeyGroup": { + "additionalProperties": false, + "properties": { + "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": { + "KeyGroupConfig": { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig" + } + }, + "required": [ + "KeyGroupConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::KeyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::KeyGroup.KeyGroupConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Items", + "Name" + ], + "type": "object" + }, "AWS::CloudFront::OriginRequestPolicy": { "additionalProperties": false, "properties": { @@ -15866,7 +16145,7 @@ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig": { + "AWS::CloudFront::PublicKey": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15898,36 +16177,18 @@ "Properties": { "additionalProperties": false, "properties": { - "EndPoints": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" - }, - "type": "array" - }, - "Fields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "SamplingRate": { - "type": "number" + "PublicKeyConfig": { + "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig" } }, "required": [ - "EndPoints", - "Fields", - "Name", - "SamplingRate" + "PublicKeyConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::RealtimeLogConfig" + "AWS::CloudFront::PublicKey" ], "type": "string" }, @@ -15946,39 +16207,142 @@ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "AWS::CloudFront::PublicKey.PublicKeyConfig": { "additionalProperties": false, "properties": { - "KinesisStreamConfig": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + "CallerReference": { + "type": "string" }, - "StreamType": { + "Comment": { "type": "string" - } - }, - "required": [ - "KinesisStreamConfig", - "StreamType" - ], - "type": "object" - }, - "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { - "additionalProperties": false, - "properties": { - "RoleArn": { + }, + "EncodedKey": { "type": "string" }, - "StreamArn": { + "Name": { "type": "string" } }, "required": [ - "RoleArn", - "StreamArn" + "CallerReference", + "EncodedKey", + "Name" ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution": { + "AWS::CloudFront::RealtimeLogConfig": { + "additionalProperties": false, + "properties": { + "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": { + "EndPoints": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" + }, + "type": "array" + }, + "Fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "EndPoints", + "Fields", + "Name", + "SamplingRate" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::RealtimeLogConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "additionalProperties": false, + "properties": { + "KinesisStreamConfig": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + }, + "StreamType": { + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamArn" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19275,6 +19639,9 @@ "Code": { "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code" }, + "ConnectionArn": { + "type": "string" + }, "EnableIssues": { "type": "boolean" }, @@ -19295,7 +19662,6 @@ } }, "required": [ - "RepositoryAccessToken", "RepositoryName", "RepositoryOwner" ], @@ -22471,6 +22837,25 @@ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.Action": { + "additionalProperties": false, + "properties": { + "CrossRegionCopy": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CrossRegionCopy", + "Name" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { @@ -22492,6 +22877,25 @@ }, "type": "object" }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Target" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": { "additionalProperties": false, "properties": { @@ -22533,6 +22937,58 @@ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventParameters": { + "additionalProperties": false, + "properties": { + "DescriptionRegex": { + "type": "string" + }, + "EventType": { + "type": "string" + }, + "SnapshotOwner": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EventType", + "SnapshotOwner" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventSource": { + "additionalProperties": false, + "properties": { + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.FastRestoreRule": { "additionalProperties": false, "properties": { @@ -22569,6 +23025,15 @@ "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" + }, + "type": "array" + }, + "EventSource": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource" + }, "Parameters": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters" }, @@ -22594,11 +23059,6 @@ "type": "array" } }, - "required": [ - "ResourceTypes", - "Schedules", - "TargetTags" - ], "type": "object" }, "AWS::DLM::LifecyclePolicy.RetainRule": { @@ -22640,6 +23100,12 @@ "RetainRule": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, + "ShareRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" + }, + "type": "array" + }, "TagsToAdd": { "items": { "$ref": "#/definitions/Tag" @@ -22655,71 +23121,89 @@ }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::DLM::LifecyclePolicy.ShareRule": { "additionalProperties": false, "properties": { - "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": { - "CertificateIdentifier": { - "type": "string" - }, - "CertificatePem": { - "type": "string" - }, - "CertificateWallet": { - "type": "string" - } + "TargetAccounts": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DMS::Certificate" - ], - "type": "string" + "UnshareInterval": { + "type": "number" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "UnshareIntervalUnit": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::DMS::Certificate": { + "additionalProperties": false, + "properties": { + "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": { + "CertificateIdentifier": { + "type": "string" + }, + "CertificatePem": { + "type": "string" + }, + "CertificateWallet": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23365,7 +23849,7 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::DataBrew::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23397,49 +23881,143 @@ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" + "FormatOptions": { + "type": "object" }, - "Description": { - "type": "string" + "Input": { + "type": "object" }, "Name": { "type": "string" }, - "ParameterObjects": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + "$ref": "#/definitions/Tag" }, "type": "array" + } + }, + "required": [ + "Input", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Job": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "ParameterValues": { + { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" }, - "PipelineObjects": { + "EncryptionKeyArn": { + "type": "string" + }, + "EncryptionMode": { + "type": "string" + }, + "LogSubscription": { + "type": "string" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutputLocation": { + "type": "object" + }, + "Outputs": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + "$ref": "#/definitions/AWS::DataBrew::Job.Output" }, "type": "array" }, - "PipelineTags": { + "ProjectName": { + "type": "string" + }, + "Recipe": { + "type": "object" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "Timeout": { + "type": "number" + }, + "Type": { + "type": "string" } }, "required": [ "Name", - "ParameterObjects" + "RoleArn", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::DataBrew::Job" ], "type": "string" }, @@ -23458,115 +24036,904 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::DataBrew::Job.Output": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { + "CompressionFormat": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { + "Format": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" - }, - "type": "array" + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, - "Id": { - "type": "string" - } - }, - "required": [ - "Attributes", - "Id" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterValue": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" + "Overwrite": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "PartitionColumns": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" } }, "required": [ - "Fields", - "Id", - "Name" + "Location" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.PipelineTag": { + "AWS::DataBrew::Job.S3Location": { "additionalProperties": false, "properties": { - "Key": { + "Bucket": { "type": "string" }, - "Value": { + "Key": { "type": "string" } }, "required": [ - "Key", - "Value" + "Bucket" ], "type": "object" }, - "AWS::Detective::Graph": { + "AWS::DataBrew::Project": { + "additionalProperties": false, + "properties": { + "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": { + "DatasetName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecipeName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sample": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatasetName", + "Name", + "RecipeName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Steps" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Recipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.Action": { + "additionalProperties": false, + "properties": { + "Operation": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "required": [ + "Operation" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.ConditionExpression": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Condition", + "TargetColumn" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeParameters": { + "additionalProperties": false, + "properties": { + "AggregateFunction": { + "type": "string" + }, + "Base": { + "type": "string" + }, + "CaseStatement": { + "type": "string" + }, + "CategoryMap": { + "type": "string" + }, + "CharsToRemove": { + "type": "string" + }, + "CollapseConsecutiveWhitespace": { + "type": "string" + }, + "ColumnDataType": { + "type": "string" + }, + "ColumnRange": { + "type": "string" + }, + "Count": { + "type": "string" + }, + "CustomCharacters": { + "type": "string" + }, + "CustomStopWords": { + "type": "string" + }, + "CustomValue": { + "type": "string" + }, + "DatasetsColumns": { + "type": "string" + }, + "DateAddValue": { + "type": "string" + }, + "DateTimeFormat": { + "type": "string" + }, + "DateTimeParameters": { + "type": "string" + }, + "DeleteOtherRows": { + "type": "string" + }, + "Delimiter": { + "type": "string" + }, + "EndPattern": { + "type": "string" + }, + "EndPosition": { + "type": "string" + }, + "EndValue": { + "type": "string" + }, + "ExpandContractions": { + "type": "string" + }, + "Exponent": { + "type": "string" + }, + "FalseString": { + "type": "string" + }, + "GroupByAggFunctionOptions": { + "type": "string" + }, + "GroupByColumns": { + "type": "string" + }, + "HiddenColumns": { + "type": "string" + }, + "IgnoreCase": { + "type": "string" + }, + "IncludeInSplit": { + "type": "string" + }, + "Input": { + "type": "object" + }, + "Interval": { + "type": "string" + }, + "IsText": { + "type": "string" + }, + "JoinKeys": { + "type": "string" + }, + "JoinType": { + "type": "string" + }, + "LeftColumns": { + "type": "string" + }, + "Limit": { + "type": "string" + }, + "LowerBound": { + "type": "string" + }, + "MapType": { + "type": "string" + }, + "ModeType": { + "type": "string" + }, + "MultiLine": { + "type": "boolean" + }, + "NumRows": { + "type": "string" + }, + "NumRowsAfter": { + "type": "string" + }, + "NumRowsBefore": { + "type": "string" + }, + "OrderByColumn": { + "type": "string" + }, + "OrderByColumns": { + "type": "string" + }, + "Other": { + "type": "string" + }, + "Pattern": { + "type": "string" + }, + "PatternOption1": { + "type": "string" + }, + "PatternOption2": { + "type": "string" + }, + "PatternOptions": { + "type": "string" + }, + "Period": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "RemoveAllPunctuation": { + "type": "string" + }, + "RemoveAllQuotes": { + "type": "string" + }, + "RemoveAllWhitespace": { + "type": "string" + }, + "RemoveCustomCharacters": { + "type": "string" + }, + "RemoveCustomValue": { + "type": "string" + }, + "RemoveLeadingAndTrailingPunctuation": { + "type": "string" + }, + "RemoveLeadingAndTrailingQuotes": { + "type": "string" + }, + "RemoveLeadingAndTrailingWhitespace": { + "type": "string" + }, + "RemoveLetters": { + "type": "string" + }, + "RemoveNumbers": { + "type": "string" + }, + "RemoveSourceColumn": { + "type": "string" + }, + "RemoveSpecialCharacters": { + "type": "string" + }, + "RightColumns": { + "type": "string" + }, + "SampleSize": { + "type": "string" + }, + "SampleType": { + "type": "string" + }, + "SecondInput": { + "type": "string" + }, + "SecondaryInputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" + }, + "type": "array" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceColumn": { + "type": "string" + }, + "SourceColumn1": { + "type": "string" + }, + "SourceColumn2": { + "type": "string" + }, + "SourceColumns": { + "type": "string" + }, + "StartColumnIndex": { + "type": "string" + }, + "StartPattern": { + "type": "string" + }, + "StartPosition": { + "type": "string" + }, + "StartValue": { + "type": "string" + }, + "StemmingMode": { + "type": "string" + }, + "StepCount": { + "type": "string" + }, + "StepIndex": { + "type": "string" + }, + "StopWordsMode": { + "type": "string" + }, + "Strategy": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "TargetColumnNames": { + "type": "string" + }, + "TargetDateFormat": { + "type": "string" + }, + "TargetIndex": { + "type": "string" + }, + "TimeZone": { + "type": "string" + }, + "TokenizerPattern": { + "type": "string" + }, + "TrueString": { + "type": "string" + }, + "UdfLang": { + "type": "string" + }, + "Units": { + "type": "string" + }, + "UnpivotColumn": { + "type": "string" + }, + "UpperBound": { + "type": "string" + }, + "UseNewDataFrame": { + "type": "string" + }, + "Value": { + "type": "string" + }, + "Value1": { + "type": "string" + }, + "Value2": { + "type": "string" + }, + "ValueColumn": { + "type": "string" + }, + "ViewFrame": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeStep": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action" + }, + "ConditionExpressions": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" + }, + "type": "array" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.SecondaryInput": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Schedule": { + "additionalProperties": false, + "properties": { + "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": { + "CronExpression": { + "type": "string" + }, + "JobNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CronExpression", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Schedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "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": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + }, + "type": "array" + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + }, + "type": "array" + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + }, + "type": "array" + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "ParameterObjects" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataPipeline::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + }, + "type": "array" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Detective::Graph": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24849,6 +26216,9 @@ "ClientCidrBlock": { "type": "string" }, + "ClientConnectOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" + }, "ConnectionLogOptions": { "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions" }, @@ -24954,6 +26324,21 @@ ], "type": "object" }, + "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LambdaFunctionArn": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": { "additionalProperties": false, "properties": { @@ -26668,6 +28053,9 @@ "properties": { "CapacityReservationId": { "type": "string" + }, + "CapacityReservationResourceGroupArn": { + "type": "string" } }, "type": "object" @@ -26729,6 +28117,15 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.HibernationOptions": { "additionalProperties": false, "properties": { @@ -26807,6 +28204,9 @@ }, "type": "array" }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions" + }, "HibernationOptions": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" }, @@ -26927,6 +28327,9 @@ "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -26957,6 +28360,9 @@ }, "type": "array" }, + "NetworkCardIndex": { + "type": "number" + }, "NetworkInterfaceId": { "type": "string" }, @@ -30362,6 +31768,12 @@ "AcceptanceRequired": { "type": "boolean" }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" + }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -36458,7 +37870,7 @@ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "UserPoolArn": { "type": "string" @@ -36511,7 +37923,7 @@ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "TokenEndpoint": { "type": "string" @@ -38211,13 +39623,14 @@ "Principal": { "type": "string" }, + "Statement": { + "type": "object" + }, "StatementId": { "type": "string" } }, "required": [ - "Action", - "Principal", "StatementId" ], "type": "object" @@ -40581,7 +41994,6 @@ } }, "required": [ - "ConnectionProperties", "ConnectionType" ], "type": "object" @@ -40748,6 +42160,9 @@ "AWS::Glue::Crawler.S3Target": { "additionalProperties": false, "properties": { + "ConnectionName": { + "type": "string" + }, "Exclusions": { "items": { "type": "string" @@ -40979,9 +42394,36 @@ ], "type": "object" }, + "AWS::Glue::Database.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -40993,6 +42435,24 @@ }, "Parameters": { "type": "object" + }, + "TargetDatabase": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier" + } + }, + "type": "object" + }, + "AWS::Glue::Database.PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal" } }, "type": "object" @@ -41328,6 +42788,9 @@ "Timeout": { "type": "number" }, + "TransformEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption" + }, "TransformParameters": { "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters" }, @@ -41418,6 +42881,33 @@ }, "type": "object" }, + "AWS::Glue::MLTransform.MLUserDataEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MLUserDataEncryptionMode": { + "type": "string" + } + }, + "required": [ + "MLUserDataEncryptionMode" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.TransformEncryption": { + "additionalProperties": false, + "properties": { + "MLUserDataEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption" + }, + "TaskRunSecurityConfigurationName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::MLTransform.TransformParameters": { "additionalProperties": false, "properties": { @@ -41465,30 +42955,506 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Partition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Partition.Column": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Partition.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "type": "string" + }, + "SortOrder": { + "type": "number" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Glue::Partition.PartitionInput": { + "additionalProperties": false, + "properties": { + "Parameters": { + "type": "object" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::Glue::Partition.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" + }, + "Compressed": { + "type": "boolean" + }, + "InputFormat": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Registry": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Registry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema": { + "additionalProperties": false, + "properties": { + "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": { + "CheckpointVersion": { + "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion" + }, + "Compatibility": { + "type": "string" + }, + "DataFormat": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Registry": { + "$ref": "#/definitions/AWS::Glue::Schema.Registry" + }, + "SchemaDefinition": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Compatibility", + "DataFormat", + "Name", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema.Registry": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Schema.SchemaVersion": { + "additionalProperties": false, + "properties": { + "IsLatest": { + "type": "boolean" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Schema": { + "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema" + }, + "SchemaDefinition": { + "type": "string" + } + }, + "required": [ + "Schema", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SchemaVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SchemaVersion.Schema": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersionMetadata": { + "additionalProperties": false, + "properties": { + "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": { + "Key": { "type": "string" }, - "DatabaseName": { + "SchemaVersionId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { + "Value": { "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "Key", + "SchemaVersionId", + "Value" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::Glue::SchemaVersionMetadata" ], "type": "string" }, @@ -41507,147 +43473,6 @@ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, "AWS::Glue::SecurityConfiguration": { "additionalProperties": false, "properties": { @@ -41961,6 +43786,21 @@ }, "type": "object" }, + "AWS::Glue::Table.TableIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { @@ -41991,6 +43831,9 @@ "TableType": { "type": "string" }, + "TargetTable": { + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier" + }, "ViewExpandedText": { "type": "string" }, @@ -48221,6 +50064,76 @@ ], "type": "object" }, + "AWS::IoT::TopicRuleDestination": { + "additionalProperties": false, + "properties": { + "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": { + "HttpUrlProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::TopicRuleDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary": { + "additionalProperties": false, + "properties": { + "ConfirmationUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { @@ -50379,6 +52292,9 @@ "KeyPolicy": { "type": "object" }, + "KeySpec": { + "type": "string" + }, "KeyUsage": { "type": "string" }, @@ -54367,6 +56283,101 @@ ], "type": "object" }, + "AWS::Lambda::CodeSigningConfig": { + "additionalProperties": false, + "properties": { + "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": { + "AllowedPublishers": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.AllowedPublishers" + }, + "CodeSigningPolicies": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.CodeSigningPolicies" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "AllowedPublishers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::CodeSigningConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.AllowedPublishers": { + "additionalProperties": false, + "properties": { + "SigningProfileVersionArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SigningProfileVersionArns" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies": { + "additionalProperties": false, + "properties": { + "UntrustedArtifactOnDeployment": { + "type": "string" + } + }, + "required": [ + "UntrustedArtifactOnDeployment" + ], + "type": "object" + }, "AWS::Lambda::EventInvokeConfig": { "additionalProperties": false, "properties": { @@ -54540,6 +56551,9 @@ "ParallelizationFactor": { "type": "number" }, + "PartialBatchResponse": { + "type": "boolean" + }, "Queues": { "items": { "type": "string" @@ -54560,6 +56574,9 @@ "type": "string" }, "type": "array" + }, + "TumblingWindowInSeconds": { + "type": "number" } }, "required": [ @@ -54654,6 +56671,9 @@ "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, + "CodeSigningConfigArn": { + "type": "string" + }, "DeadLetterConfig": { "$ref": "#/definitions/AWS::Lambda::Function.DeadLetterConfig" }, @@ -61105,34 +63125,590 @@ "Properties": { "additionalProperties": false, "properties": { - "DBSubnetGroupDescription": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall": { + "additionalProperties": false, + "properties": { + "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": { + "DeleteProtection": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "FirewallName": { + "type": "string" + }, + "FirewallPolicyArn": { + "type": "string" + }, + "FirewallPolicyChangeProtection": { + "type": "boolean" + }, + "SubnetChangeProtection": { + "type": "boolean" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" + }, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.Tags" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "FirewallName", + "FirewallPolicyArn", + "SubnetMappings", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::Firewall" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.SubnetMapping": { + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" + }, + "FirewallPolicyName": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Tags" + } + }, + "required": [ + "FirewallPolicy", + "FirewallPolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::FirewallPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences" + }, + "StatelessCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomActions" + }, + "StatelessDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessFragmentDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessActions": { + "additionalProperties": false, + "properties": { + "StatelessActions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Priority", + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatelessRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "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": { + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" + } + }, + "required": [ + "LoggingConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig": { + "additionalProperties": false, + "properties": { + "LogDestination": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "LogDestinationType": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "LogDestination", + "LogDestinationType", + "LogType" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs" + } + }, + "required": [ + "LogDestinationConfigs" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup": { + "additionalProperties": false, + "properties": { + "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": { + "Capacity": { + "type": "number" + }, + "Description": { "type": "string" }, - "DBSubnetGroupName": { + "RuleGroup": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup" + }, + "RuleGroupId": { "type": "string" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "RuleGroupName": { + "type": "string" }, "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Tags" + }, + "Type": { + "type": "string" } }, "required": [ - "DBSubnetGroupDescription", - "SubnetIds" + "Capacity", + "RuleGroupName", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBSubnetGroup" + "AWS::NetworkFirewall::RuleGroup" ], "type": "string" }, @@ -61151,6 +63727,496 @@ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Addresses": { + "additionalProperties": false, + "properties": { + "Addresses": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Flags": { + "additionalProperties": false, + "properties": { + "Flags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationPort": { + "type": "string" + }, + "Direction": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourcePort": { + "type": "string" + } + }, + "required": [ + "Destination", + "DestinationPort", + "Direction", + "Protocol", + "Source", + "SourcePort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.MatchAttributes": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Destinations": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "Protocols": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ProtocolNumbers" + }, + "SourcePorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Sources": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "TCPFlags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlags" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRanges": { + "additionalProperties": false, + "properties": { + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.ProtocolNumbers": { + "additionalProperties": false, + "properties": { + "ProtocolNumbers": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleDefinition": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MatchAttributes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes" + } + }, + "required": [ + "Actions", + "MatchAttributes" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleGroup": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "type": "string" + }, + "Settings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOptions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" + } + }, + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList" + }, + "RulesString": { + "type": "string" + }, + "StatefulRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRules" + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "type": "string" + }, + "TargetTypes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TargetTypes" + }, + "Targets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GeneratedRulesType", + "TargetTypes", + "Targets" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Header": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header" + }, + "RuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOptions" + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRules": { + "additionalProperties": false, + "properties": { + "StatefulRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "RuleDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition" + } + }, + "required": [ + "Priority", + "RuleDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRules": { + "additionalProperties": false, + "properties": { + "StatelessRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomActions" + }, + "StatelessRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRules" + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + }, + "Masks": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + } + }, + "required": [ + "Flags" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlags": { + "additionalProperties": false, + "properties": { + "TCPFlags": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TargetTypes": { + "additionalProperties": false, + "properties": { + "TargetTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.VariableDefinitionList": { + "additionalProperties": false, + "properties": { + "VariableDefinitionList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::NetworkManager::CustomerGatewayAssociation": { "additionalProperties": false, "properties": { @@ -69344,6 +72410,12 @@ "CorsConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration" }, + "IntelligentTieringConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" + }, + "type": "array" + }, "InventoryConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" @@ -69371,6 +72443,9 @@ "ObjectLockEnabled": { "type": "boolean" }, + "OwnershipControls": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls" + }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration" }, @@ -69633,6 +72708,38 @@ ], "type": "object" }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + }, + "Tierings": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Tiering" + }, + "type": "array" + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, "AWS::S3::Bucket.InventoryConfiguration": { "additionalProperties": false, "properties": { @@ -69825,6 +72932,30 @@ }, "type": "object" }, + "AWS::S3::Bucket.OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "type": "string" + } + }, + "type": "object" + }, "AWS::S3::Bucket.PublicAccessBlockConfiguration": { "additionalProperties": false, "properties": { @@ -70205,6 +73336,22 @@ ], "type": "object" }, + "AWS::S3::Bucket.Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "type": "string" + }, + "Days": { + "type": "number" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, "AWS::S3::Bucket.TopicConfiguration": { "additionalProperties": false, "properties": { @@ -70341,6 +73488,261 @@ ], "type": "object" }, + "AWS::S3::StorageLens": { + "additionalProperties": false, + "properties": { + "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": { + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, "AWS::SDB::Domain": { "additionalProperties": false, "properties": { @@ -73251,6 +76653,9 @@ }, "ModelPackageName": { "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.MultiModelConfig" } }, "type": "object" @@ -73267,6 +76672,15 @@ ], "type": "object" }, + "AWS::SageMaker::Model.MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -73321,18 +76735,12 @@ "Properties": { "additionalProperties": false, "properties": { - "CreationTime": { - "type": "string" - }, "EndpointName": { "type": "string" }, "FailureReason": { "type": "string" }, - "LastModifiedTime": { - "type": "string" - }, "LastMonitoringExecutionSummary": { "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary" }, @@ -75892,14 +79300,94 @@ "type": "array" } }, - "required": [ - "Name" - ], + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::PublicDnsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + }, + "Name": { + "type": "string" + }, + "NamespaceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::PublicDnsNamespace" + "AWS::ServiceDiscovery::Service" ], "type": "string" }, @@ -75913,12 +79401,75 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ServiceDiscovery::Service": { + "AWS::ServiceDiscovery::Service.DnsConfig": { + "additionalProperties": false, + "properties": { + "DnsRecords": { + "items": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + }, + "type": "array" + }, + "NamespaceId": { + "type": "string" + }, + "RoutingPolicy": { + "type": "string" + } + }, + "required": [ + "DnsRecords" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsRecord": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "TTL", + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + }, + "ResourcePath": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Signer::ProfilePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -75950,36 +79501,33 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Action": { "type": "string" }, - "DnsConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" - }, - "HealthCheckConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" - }, - "HealthCheckCustomConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + "Principal": { + "type": "string" }, - "Name": { + "ProfileName": { "type": "string" }, - "NamespaceId": { + "ProfileVersion": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "StatementId": { + "type": "string" } }, + "required": [ + "Action", + "Principal", + "ProfileName", + "StatementId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::Service" + "AWS::Signer::ProfilePermission" ], "type": "string" }, @@ -75993,69 +79541,89 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsConfig": { + "AWS::Signer::SigningProfile": { "additionalProperties": false, "properties": { - "DnsRecords": { - "items": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + "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": { + "PlatformId": { + "type": "string" + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "PlatformId" + ], + "type": "object" }, - "NamespaceId": { + "Type": { + "enum": [ + "AWS::Signer::SigningProfile" + ], "type": "string" }, - "RoutingPolicy": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "DnsRecords" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsRecord": { + "AWS::Signer::SigningProfile.SignatureValidityPeriod": { "additionalProperties": false, "properties": { - "TTL": { - "type": "number" - }, "Type": { "type": "string" - } - }, - "required": [ - "TTL", - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { - "type": "number" }, - "ResourcePath": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { + "Value": { "type": "number" } }, @@ -76450,6 +80018,15 @@ "ActiveTracing": { "type": "boolean" }, + "EnvironmentVariables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, "MemoryInMB": { "type": "number" }, @@ -80971,9 +84548,15 @@ { "$ref": "#/definitions/AWS::CloudFront::Distribution" }, + { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup" + }, { "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy" }, + { + "$ref": "#/definitions/AWS::CloudFront::PublicKey" + }, { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, @@ -81145,6 +84728,21 @@ { "$ref": "#/definitions/AWS::DMS::ReplicationTask" }, + { + "$ref": "#/definitions/AWS::DataBrew::Dataset" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Job" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Project" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Recipe" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Schedule" + }, { "$ref": "#/definitions/AWS::DataPipeline::Pipeline" }, @@ -81562,6 +85160,18 @@ { "$ref": "#/definitions/AWS::Glue::Partition" }, + { + "$ref": "#/definitions/AWS::Glue::Registry" + }, + { + "$ref": "#/definitions/AWS::Glue::Schema" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersion" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersionMetadata" + }, { "$ref": "#/definitions/AWS::Glue::SecurityConfiguration" }, @@ -81739,6 +85349,9 @@ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination" + }, { "$ref": "#/definitions/AWS::IoTAnalytics::Channel" }, @@ -81826,6 +85439,9 @@ { "$ref": "#/definitions/AWS::Lambda::Alias" }, + { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig" + }, { "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig" }, @@ -81931,6 +85547,18 @@ { "$ref": "#/definitions/AWS::Neptune::DBSubnetGroup" }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup" + }, { "$ref": "#/definitions/AWS::NetworkManager::CustomerGatewayAssociation" }, @@ -82159,6 +85787,9 @@ { "$ref": "#/definitions/AWS::S3::BucketPolicy" }, + { + "$ref": "#/definitions/AWS::S3::StorageLens" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -82321,6 +85952,12 @@ { "$ref": "#/definitions/AWS::ServiceDiscovery::Service" }, + { + "$ref": "#/definitions/AWS::Signer::ProfilePermission" + }, + { + "$ref": "#/definitions/AWS::Signer::SigningProfile" + }, { "$ref": "#/definitions/AWS::StepFunctions::Activity" }, diff --git a/schema/sam.go b/schema/sam.go index ad49062707..ad39d6c219 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -969,6 +969,9 @@ var SamSchema = `{ "BuildSpec": { "type": "string" }, + "CustomHeaders": { + "type": "string" + }, "CustomRules": { "items": { "$ref": "#/definitions/AWS::Amplify::App.CustomRule" @@ -5751,6 +5754,9 @@ var SamSchema = `{ "AccessToken": { "type": "string" }, + "ClientCredentialsArn": { + "type": "string" + }, "ConnectorOAuthRequest": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" }, @@ -7515,6 +7521,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { @@ -7527,6 +7548,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": { "additionalProperties": false, "properties": { @@ -7561,9 +7594,39 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy" }, @@ -8007,9 +8070,15 @@ var SamSchema = `{ "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck" }, + "OutlierDetection": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection" + }, "PortMapping": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping" }, @@ -8108,6 +8177,30 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.OutlierDetection": { + "additionalProperties": false, + "properties": { + "BaseEjectionDuration": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "Interval": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "MaxEjectionPercent": { + "type": "number" + }, + "MaxServerErrors": { + "type": "number" + } + }, + "required": [ + "BaseEjectionDuration", + "Interval", + "MaxEjectionPercent", + "MaxServerErrors" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.PortMapping": { "additionalProperties": false, "properties": { @@ -8196,6 +8289,63 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualNodeSpec": { "additionalProperties": false, "properties": { @@ -8223,6 +8373,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualServiceBackend": { "additionalProperties": false, "properties": { @@ -12885,6 +13047,12 @@ var SamSchema = `{ "DesiredvCpus": { "type": "number" }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, "Ec2KeyPair": { "type": "string" }, @@ -12944,6 +13112,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { @@ -15210,6 +15393,12 @@ var SamSchema = `{ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15350,6 +15539,12 @@ var SamSchema = `{ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15726,6 +15921,90 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::CloudFront::KeyGroup": { + "additionalProperties": false, + "properties": { + "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": { + "KeyGroupConfig": { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig" + } + }, + "required": [ + "KeyGroupConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::KeyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::KeyGroup.KeyGroupConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Items", + "Name" + ], + "type": "object" + }, "AWS::CloudFront::OriginRequestPolicy": { "additionalProperties": false, "properties": { @@ -15869,7 +16148,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig": { + "AWS::CloudFront::PublicKey": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15901,36 +16180,18 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "EndPoints": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" - }, - "type": "array" - }, - "Fields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "SamplingRate": { - "type": "number" + "PublicKeyConfig": { + "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig" } }, "required": [ - "EndPoints", - "Fields", - "Name", - "SamplingRate" + "PublicKeyConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::RealtimeLogConfig" + "AWS::CloudFront::PublicKey" ], "type": "string" }, @@ -15949,39 +16210,142 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "AWS::CloudFront::PublicKey.PublicKeyConfig": { "additionalProperties": false, "properties": { - "KinesisStreamConfig": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + "CallerReference": { + "type": "string" }, - "StreamType": { + "Comment": { "type": "string" - } - }, - "required": [ - "KinesisStreamConfig", - "StreamType" - ], - "type": "object" - }, - "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { - "additionalProperties": false, - "properties": { - "RoleArn": { + }, + "EncodedKey": { "type": "string" }, - "StreamArn": { + "Name": { "type": "string" } }, "required": [ - "RoleArn", - "StreamArn" + "CallerReference", + "EncodedKey", + "Name" ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution": { + "AWS::CloudFront::RealtimeLogConfig": { + "additionalProperties": false, + "properties": { + "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": { + "EndPoints": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" + }, + "type": "array" + }, + "Fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "EndPoints", + "Fields", + "Name", + "SamplingRate" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::RealtimeLogConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "additionalProperties": false, + "properties": { + "KinesisStreamConfig": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + }, + "StreamType": { + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamArn" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19278,6 +19642,9 @@ var SamSchema = `{ "Code": { "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code" }, + "ConnectionArn": { + "type": "string" + }, "EnableIssues": { "type": "boolean" }, @@ -19298,7 +19665,6 @@ var SamSchema = `{ } }, "required": [ - "RepositoryAccessToken", "RepositoryName", "RepositoryOwner" ], @@ -22474,6 +22840,25 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.Action": { + "additionalProperties": false, + "properties": { + "CrossRegionCopy": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CrossRegionCopy", + "Name" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { @@ -22495,6 +22880,25 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Target" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": { "additionalProperties": false, "properties": { @@ -22536,6 +22940,58 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventParameters": { + "additionalProperties": false, + "properties": { + "DescriptionRegex": { + "type": "string" + }, + "EventType": { + "type": "string" + }, + "SnapshotOwner": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EventType", + "SnapshotOwner" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventSource": { + "additionalProperties": false, + "properties": { + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.FastRestoreRule": { "additionalProperties": false, "properties": { @@ -22572,6 +23028,15 @@ var SamSchema = `{ "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" + }, + "type": "array" + }, + "EventSource": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource" + }, "Parameters": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters" }, @@ -22597,11 +23062,6 @@ var SamSchema = `{ "type": "array" } }, - "required": [ - "ResourceTypes", - "Schedules", - "TargetTags" - ], "type": "object" }, "AWS::DLM::LifecyclePolicy.RetainRule": { @@ -22643,6 +23103,12 @@ var SamSchema = `{ "RetainRule": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, + "ShareRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" + }, + "type": "array" + }, "TagsToAdd": { "items": { "$ref": "#/definitions/Tag" @@ -22658,71 +23124,89 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::DLM::LifecyclePolicy.ShareRule": { "additionalProperties": false, "properties": { - "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": { - "CertificateIdentifier": { - "type": "string" - }, - "CertificatePem": { - "type": "string" - }, - "CertificateWallet": { - "type": "string" - } + "TargetAccounts": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DMS::Certificate" - ], - "type": "string" + "UnshareInterval": { + "type": "number" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "UnshareIntervalUnit": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::DMS::Certificate": { + "additionalProperties": false, + "properties": { + "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": { + "CertificateIdentifier": { + "type": "string" + }, + "CertificatePem": { + "type": "string" + }, + "CertificateWallet": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23368,7 +23852,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::DataBrew::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23400,49 +23884,143 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" + "FormatOptions": { + "type": "object" }, - "Description": { - "type": "string" + "Input": { + "type": "object" }, "Name": { "type": "string" }, - "ParameterObjects": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + "$ref": "#/definitions/Tag" }, "type": "array" + } + }, + "required": [ + "Input", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Job": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "ParameterValues": { + { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" }, - "PipelineObjects": { + "EncryptionKeyArn": { + "type": "string" + }, + "EncryptionMode": { + "type": "string" + }, + "LogSubscription": { + "type": "string" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutputLocation": { + "type": "object" + }, + "Outputs": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + "$ref": "#/definitions/AWS::DataBrew::Job.Output" }, "type": "array" }, - "PipelineTags": { + "ProjectName": { + "type": "string" + }, + "Recipe": { + "type": "object" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "Timeout": { + "type": "number" + }, + "Type": { + "type": "string" } }, "required": [ "Name", - "ParameterObjects" + "RoleArn", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::DataBrew::Job" ], "type": "string" }, @@ -23461,115 +24039,904 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::DataBrew::Job.Output": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { + "CompressionFormat": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { + "Format": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" - }, - "type": "array" + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, - "Id": { - "type": "string" - } - }, - "required": [ - "Attributes", - "Id" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterValue": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" + "Overwrite": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "PartitionColumns": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" } }, "required": [ - "Fields", - "Id", - "Name" + "Location" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.PipelineTag": { + "AWS::DataBrew::Job.S3Location": { "additionalProperties": false, "properties": { - "Key": { + "Bucket": { "type": "string" }, - "Value": { + "Key": { "type": "string" } }, "required": [ - "Key", - "Value" + "Bucket" ], "type": "object" }, - "AWS::Detective::Graph": { + "AWS::DataBrew::Project": { + "additionalProperties": false, + "properties": { + "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": { + "DatasetName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecipeName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sample": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatasetName", + "Name", + "RecipeName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Steps" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Recipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.Action": { + "additionalProperties": false, + "properties": { + "Operation": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "required": [ + "Operation" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.ConditionExpression": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Condition", + "TargetColumn" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeParameters": { + "additionalProperties": false, + "properties": { + "AggregateFunction": { + "type": "string" + }, + "Base": { + "type": "string" + }, + "CaseStatement": { + "type": "string" + }, + "CategoryMap": { + "type": "string" + }, + "CharsToRemove": { + "type": "string" + }, + "CollapseConsecutiveWhitespace": { + "type": "string" + }, + "ColumnDataType": { + "type": "string" + }, + "ColumnRange": { + "type": "string" + }, + "Count": { + "type": "string" + }, + "CustomCharacters": { + "type": "string" + }, + "CustomStopWords": { + "type": "string" + }, + "CustomValue": { + "type": "string" + }, + "DatasetsColumns": { + "type": "string" + }, + "DateAddValue": { + "type": "string" + }, + "DateTimeFormat": { + "type": "string" + }, + "DateTimeParameters": { + "type": "string" + }, + "DeleteOtherRows": { + "type": "string" + }, + "Delimiter": { + "type": "string" + }, + "EndPattern": { + "type": "string" + }, + "EndPosition": { + "type": "string" + }, + "EndValue": { + "type": "string" + }, + "ExpandContractions": { + "type": "string" + }, + "Exponent": { + "type": "string" + }, + "FalseString": { + "type": "string" + }, + "GroupByAggFunctionOptions": { + "type": "string" + }, + "GroupByColumns": { + "type": "string" + }, + "HiddenColumns": { + "type": "string" + }, + "IgnoreCase": { + "type": "string" + }, + "IncludeInSplit": { + "type": "string" + }, + "Input": { + "type": "object" + }, + "Interval": { + "type": "string" + }, + "IsText": { + "type": "string" + }, + "JoinKeys": { + "type": "string" + }, + "JoinType": { + "type": "string" + }, + "LeftColumns": { + "type": "string" + }, + "Limit": { + "type": "string" + }, + "LowerBound": { + "type": "string" + }, + "MapType": { + "type": "string" + }, + "ModeType": { + "type": "string" + }, + "MultiLine": { + "type": "boolean" + }, + "NumRows": { + "type": "string" + }, + "NumRowsAfter": { + "type": "string" + }, + "NumRowsBefore": { + "type": "string" + }, + "OrderByColumn": { + "type": "string" + }, + "OrderByColumns": { + "type": "string" + }, + "Other": { + "type": "string" + }, + "Pattern": { + "type": "string" + }, + "PatternOption1": { + "type": "string" + }, + "PatternOption2": { + "type": "string" + }, + "PatternOptions": { + "type": "string" + }, + "Period": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "RemoveAllPunctuation": { + "type": "string" + }, + "RemoveAllQuotes": { + "type": "string" + }, + "RemoveAllWhitespace": { + "type": "string" + }, + "RemoveCustomCharacters": { + "type": "string" + }, + "RemoveCustomValue": { + "type": "string" + }, + "RemoveLeadingAndTrailingPunctuation": { + "type": "string" + }, + "RemoveLeadingAndTrailingQuotes": { + "type": "string" + }, + "RemoveLeadingAndTrailingWhitespace": { + "type": "string" + }, + "RemoveLetters": { + "type": "string" + }, + "RemoveNumbers": { + "type": "string" + }, + "RemoveSourceColumn": { + "type": "string" + }, + "RemoveSpecialCharacters": { + "type": "string" + }, + "RightColumns": { + "type": "string" + }, + "SampleSize": { + "type": "string" + }, + "SampleType": { + "type": "string" + }, + "SecondInput": { + "type": "string" + }, + "SecondaryInputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" + }, + "type": "array" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceColumn": { + "type": "string" + }, + "SourceColumn1": { + "type": "string" + }, + "SourceColumn2": { + "type": "string" + }, + "SourceColumns": { + "type": "string" + }, + "StartColumnIndex": { + "type": "string" + }, + "StartPattern": { + "type": "string" + }, + "StartPosition": { + "type": "string" + }, + "StartValue": { + "type": "string" + }, + "StemmingMode": { + "type": "string" + }, + "StepCount": { + "type": "string" + }, + "StepIndex": { + "type": "string" + }, + "StopWordsMode": { + "type": "string" + }, + "Strategy": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "TargetColumnNames": { + "type": "string" + }, + "TargetDateFormat": { + "type": "string" + }, + "TargetIndex": { + "type": "string" + }, + "TimeZone": { + "type": "string" + }, + "TokenizerPattern": { + "type": "string" + }, + "TrueString": { + "type": "string" + }, + "UdfLang": { + "type": "string" + }, + "Units": { + "type": "string" + }, + "UnpivotColumn": { + "type": "string" + }, + "UpperBound": { + "type": "string" + }, + "UseNewDataFrame": { + "type": "string" + }, + "Value": { + "type": "string" + }, + "Value1": { + "type": "string" + }, + "Value2": { + "type": "string" + }, + "ValueColumn": { + "type": "string" + }, + "ViewFrame": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeStep": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action" + }, + "ConditionExpressions": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" + }, + "type": "array" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.SecondaryInput": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Schedule": { + "additionalProperties": false, + "properties": { + "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": { + "CronExpression": { + "type": "string" + }, + "JobNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CronExpression", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Schedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "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": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + }, + "type": "array" + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + }, + "type": "array" + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + }, + "type": "array" + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "ParameterObjects" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataPipeline::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + }, + "type": "array" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Detective::Graph": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24852,6 +26219,9 @@ var SamSchema = `{ "ClientCidrBlock": { "type": "string" }, + "ClientConnectOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" + }, "ConnectionLogOptions": { "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions" }, @@ -24957,6 +26327,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LambdaFunctionArn": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": { "additionalProperties": false, "properties": { @@ -26671,6 +28056,9 @@ var SamSchema = `{ "properties": { "CapacityReservationId": { "type": "string" + }, + "CapacityReservationResourceGroupArn": { + "type": "string" } }, "type": "object" @@ -26732,6 +28120,15 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.HibernationOptions": { "additionalProperties": false, "properties": { @@ -26810,6 +28207,9 @@ var SamSchema = `{ }, "type": "array" }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions" + }, "HibernationOptions": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" }, @@ -26930,6 +28330,9 @@ var SamSchema = `{ "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -26960,6 +28363,9 @@ var SamSchema = `{ }, "type": "array" }, + "NetworkCardIndex": { + "type": "number" + }, "NetworkInterfaceId": { "type": "string" }, @@ -30365,6 +31771,12 @@ var SamSchema = `{ "AcceptanceRequired": { "type": "boolean" }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" + }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -36461,7 +37873,7 @@ var SamSchema = `{ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "UserPoolArn": { "type": "string" @@ -36514,7 +37926,7 @@ var SamSchema = `{ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "TokenEndpoint": { "type": "string" @@ -38214,13 +39626,14 @@ var SamSchema = `{ "Principal": { "type": "string" }, + "Statement": { + "type": "object" + }, "StatementId": { "type": "string" } }, "required": [ - "Action", - "Principal", "StatementId" ], "type": "object" @@ -40584,7 +41997,6 @@ var SamSchema = `{ } }, "required": [ - "ConnectionProperties", "ConnectionType" ], "type": "object" @@ -40751,6 +42163,9 @@ var SamSchema = `{ "AWS::Glue::Crawler.S3Target": { "additionalProperties": false, "properties": { + "ConnectionName": { + "type": "string" + }, "Exclusions": { "items": { "type": "string" @@ -40982,9 +42397,36 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Glue::Database.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -40996,6 +42438,24 @@ var SamSchema = `{ }, "Parameters": { "type": "object" + }, + "TargetDatabase": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier" + } + }, + "type": "object" + }, + "AWS::Glue::Database.PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal" } }, "type": "object" @@ -41331,6 +42791,9 @@ var SamSchema = `{ "Timeout": { "type": "number" }, + "TransformEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption" + }, "TransformParameters": { "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters" }, @@ -41421,6 +42884,33 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Glue::MLTransform.MLUserDataEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MLUserDataEncryptionMode": { + "type": "string" + } + }, + "required": [ + "MLUserDataEncryptionMode" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.TransformEncryption": { + "additionalProperties": false, + "properties": { + "MLUserDataEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption" + }, + "TaskRunSecurityConfigurationName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::MLTransform.TransformParameters": { "additionalProperties": false, "properties": { @@ -41468,30 +42958,506 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Partition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Partition.Column": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Partition.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "type": "string" + }, + "SortOrder": { + "type": "number" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Glue::Partition.PartitionInput": { + "additionalProperties": false, + "properties": { + "Parameters": { + "type": "object" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::Glue::Partition.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" + }, + "Compressed": { + "type": "boolean" + }, + "InputFormat": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Registry": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Registry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema": { + "additionalProperties": false, + "properties": { + "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": { + "CheckpointVersion": { + "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion" + }, + "Compatibility": { + "type": "string" + }, + "DataFormat": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Registry": { + "$ref": "#/definitions/AWS::Glue::Schema.Registry" + }, + "SchemaDefinition": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Compatibility", + "DataFormat", + "Name", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema.Registry": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Schema.SchemaVersion": { + "additionalProperties": false, + "properties": { + "IsLatest": { + "type": "boolean" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Schema": { + "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema" + }, + "SchemaDefinition": { + "type": "string" + } + }, + "required": [ + "Schema", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SchemaVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SchemaVersion.Schema": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersionMetadata": { + "additionalProperties": false, + "properties": { + "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": { + "Key": { "type": "string" }, - "DatabaseName": { + "SchemaVersionId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { + "Value": { "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "Key", + "SchemaVersionId", + "Value" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::Glue::SchemaVersionMetadata" ], "type": "string" }, @@ -41510,147 +43476,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, "AWS::Glue::SecurityConfiguration": { "additionalProperties": false, "properties": { @@ -41964,6 +43789,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Glue::Table.TableIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { @@ -41994,6 +43834,9 @@ var SamSchema = `{ "TableType": { "type": "string" }, + "TargetTable": { + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier" + }, "ViewExpandedText": { "type": "string" }, @@ -48224,6 +50067,76 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IoT::TopicRuleDestination": { + "additionalProperties": false, + "properties": { + "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": { + "HttpUrlProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::TopicRuleDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary": { + "additionalProperties": false, + "properties": { + "ConfirmationUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { @@ -50382,6 +52295,9 @@ var SamSchema = `{ "KeyPolicy": { "type": "object" }, + "KeySpec": { + "type": "string" + }, "KeyUsage": { "type": "string" }, @@ -54370,6 +56286,101 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Lambda::CodeSigningConfig": { + "additionalProperties": false, + "properties": { + "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": { + "AllowedPublishers": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.AllowedPublishers" + }, + "CodeSigningPolicies": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.CodeSigningPolicies" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "AllowedPublishers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::CodeSigningConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.AllowedPublishers": { + "additionalProperties": false, + "properties": { + "SigningProfileVersionArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SigningProfileVersionArns" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies": { + "additionalProperties": false, + "properties": { + "UntrustedArtifactOnDeployment": { + "type": "string" + } + }, + "required": [ + "UntrustedArtifactOnDeployment" + ], + "type": "object" + }, "AWS::Lambda::EventInvokeConfig": { "additionalProperties": false, "properties": { @@ -54543,6 +56554,9 @@ var SamSchema = `{ "ParallelizationFactor": { "type": "number" }, + "PartialBatchResponse": { + "type": "boolean" + }, "Queues": { "items": { "type": "string" @@ -54563,6 +56577,9 @@ var SamSchema = `{ "type": "string" }, "type": "array" + }, + "TumblingWindowInSeconds": { + "type": "number" } }, "required": [ @@ -54657,6 +56674,9 @@ var SamSchema = `{ "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, + "CodeSigningConfigArn": { + "type": "string" + }, "DeadLetterConfig": { "$ref": "#/definitions/AWS::Lambda::Function.DeadLetterConfig" }, @@ -61108,34 +63128,590 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DBSubnetGroupDescription": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall": { + "additionalProperties": false, + "properties": { + "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": { + "DeleteProtection": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "FirewallName": { + "type": "string" + }, + "FirewallPolicyArn": { + "type": "string" + }, + "FirewallPolicyChangeProtection": { + "type": "boolean" + }, + "SubnetChangeProtection": { + "type": "boolean" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" + }, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.Tags" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "FirewallName", + "FirewallPolicyArn", + "SubnetMappings", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::Firewall" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.SubnetMapping": { + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" + }, + "FirewallPolicyName": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Tags" + } + }, + "required": [ + "FirewallPolicy", + "FirewallPolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::FirewallPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences" + }, + "StatelessCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomActions" + }, + "StatelessDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessFragmentDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessActions": { + "additionalProperties": false, + "properties": { + "StatelessActions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Priority", + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatelessRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "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": { + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" + } + }, + "required": [ + "LoggingConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig": { + "additionalProperties": false, + "properties": { + "LogDestination": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "LogDestinationType": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "LogDestination", + "LogDestinationType", + "LogType" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs" + } + }, + "required": [ + "LogDestinationConfigs" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup": { + "additionalProperties": false, + "properties": { + "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": { + "Capacity": { + "type": "number" + }, + "Description": { "type": "string" }, - "DBSubnetGroupName": { + "RuleGroup": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup" + }, + "RuleGroupId": { "type": "string" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "RuleGroupName": { + "type": "string" }, "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Tags" + }, + "Type": { + "type": "string" } }, "required": [ - "DBSubnetGroupDescription", - "SubnetIds" + "Capacity", + "RuleGroupName", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBSubnetGroup" + "AWS::NetworkFirewall::RuleGroup" ], "type": "string" }, @@ -61154,6 +63730,496 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Addresses": { + "additionalProperties": false, + "properties": { + "Addresses": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Flags": { + "additionalProperties": false, + "properties": { + "Flags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationPort": { + "type": "string" + }, + "Direction": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourcePort": { + "type": "string" + } + }, + "required": [ + "Destination", + "DestinationPort", + "Direction", + "Protocol", + "Source", + "SourcePort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.MatchAttributes": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Destinations": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "Protocols": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ProtocolNumbers" + }, + "SourcePorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Sources": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "TCPFlags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlags" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRanges": { + "additionalProperties": false, + "properties": { + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.ProtocolNumbers": { + "additionalProperties": false, + "properties": { + "ProtocolNumbers": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleDefinition": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MatchAttributes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes" + } + }, + "required": [ + "Actions", + "MatchAttributes" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleGroup": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "type": "string" + }, + "Settings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOptions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" + } + }, + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList" + }, + "RulesString": { + "type": "string" + }, + "StatefulRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRules" + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "type": "string" + }, + "TargetTypes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TargetTypes" + }, + "Targets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GeneratedRulesType", + "TargetTypes", + "Targets" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Header": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header" + }, + "RuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOptions" + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRules": { + "additionalProperties": false, + "properties": { + "StatefulRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "RuleDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition" + } + }, + "required": [ + "Priority", + "RuleDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRules": { + "additionalProperties": false, + "properties": { + "StatelessRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomActions" + }, + "StatelessRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRules" + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + }, + "Masks": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + } + }, + "required": [ + "Flags" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlags": { + "additionalProperties": false, + "properties": { + "TCPFlags": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TargetTypes": { + "additionalProperties": false, + "properties": { + "TargetTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.VariableDefinitionList": { + "additionalProperties": false, + "properties": { + "VariableDefinitionList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::NetworkManager::CustomerGatewayAssociation": { "additionalProperties": false, "properties": { @@ -69347,6 +72413,12 @@ var SamSchema = `{ "CorsConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration" }, + "IntelligentTieringConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" + }, + "type": "array" + }, "InventoryConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" @@ -69374,6 +72446,9 @@ var SamSchema = `{ "ObjectLockEnabled": { "type": "boolean" }, + "OwnershipControls": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls" + }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration" }, @@ -69636,6 +72711,38 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + }, + "Tierings": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Tiering" + }, + "type": "array" + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, "AWS::S3::Bucket.InventoryConfiguration": { "additionalProperties": false, "properties": { @@ -69828,6 +72935,30 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::S3::Bucket.OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "type": "string" + } + }, + "type": "object" + }, "AWS::S3::Bucket.PublicAccessBlockConfiguration": { "additionalProperties": false, "properties": { @@ -70208,6 +73339,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::S3::Bucket.Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "type": "string" + }, + "Days": { + "type": "number" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, "AWS::S3::Bucket.TopicConfiguration": { "additionalProperties": false, "properties": { @@ -70344,6 +73491,261 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::S3::StorageLens": { + "additionalProperties": false, + "properties": { + "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": { + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, "AWS::SDB::Domain": { "additionalProperties": false, "properties": { @@ -73254,6 +76656,9 @@ var SamSchema = `{ }, "ModelPackageName": { "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.MultiModelConfig" } }, "type": "object" @@ -73270,6 +76675,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::SageMaker::Model.MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -73324,18 +76738,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CreationTime": { - "type": "string" - }, "EndpointName": { "type": "string" }, "FailureReason": { "type": "string" }, - "LastModifiedTime": { - "type": "string" - }, "LastMonitoringExecutionSummary": { "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary" }, @@ -77696,14 +81104,94 @@ var SamSchema = `{ "type": "array" } }, - "required": [ - "Name" - ], + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::PublicDnsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + }, + "Name": { + "type": "string" + }, + "NamespaceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::PublicDnsNamespace" + "AWS::ServiceDiscovery::Service" ], "type": "string" }, @@ -77717,12 +81205,75 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ServiceDiscovery::Service": { + "AWS::ServiceDiscovery::Service.DnsConfig": { + "additionalProperties": false, + "properties": { + "DnsRecords": { + "items": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + }, + "type": "array" + }, + "NamespaceId": { + "type": "string" + }, + "RoutingPolicy": { + "type": "string" + } + }, + "required": [ + "DnsRecords" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsRecord": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "TTL", + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + }, + "ResourcePath": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Signer::ProfilePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -77754,36 +81305,33 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Action": { "type": "string" }, - "DnsConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" - }, - "HealthCheckConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" - }, - "HealthCheckCustomConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + "Principal": { + "type": "string" }, - "Name": { + "ProfileName": { "type": "string" }, - "NamespaceId": { + "ProfileVersion": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "StatementId": { + "type": "string" } }, + "required": [ + "Action", + "Principal", + "ProfileName", + "StatementId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::Service" + "AWS::Signer::ProfilePermission" ], "type": "string" }, @@ -77797,69 +81345,89 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsConfig": { + "AWS::Signer::SigningProfile": { "additionalProperties": false, "properties": { - "DnsRecords": { - "items": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + "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": { + "PlatformId": { + "type": "string" + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "PlatformId" + ], + "type": "object" }, - "NamespaceId": { + "Type": { + "enum": [ + "AWS::Signer::SigningProfile" + ], "type": "string" }, - "RoutingPolicy": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "DnsRecords" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsRecord": { + "AWS::Signer::SigningProfile.SignatureValidityPeriod": { "additionalProperties": false, "properties": { - "TTL": { - "type": "number" - }, "Type": { "type": "string" - } - }, - "required": [ - "TTL", - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { - "type": "number" }, - "ResourcePath": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { + "Value": { "type": "number" } }, @@ -78254,6 +81822,15 @@ var SamSchema = `{ "ActiveTracing": { "type": "boolean" }, + "EnvironmentVariables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, "MemoryInMB": { "type": "number" }, @@ -82775,9 +86352,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::CloudFront::Distribution" }, + { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup" + }, { "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy" }, + { + "$ref": "#/definitions/AWS::CloudFront::PublicKey" + }, { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, @@ -82949,6 +86532,21 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::DMS::ReplicationTask" }, + { + "$ref": "#/definitions/AWS::DataBrew::Dataset" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Job" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Project" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Recipe" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Schedule" + }, { "$ref": "#/definitions/AWS::DataPipeline::Pipeline" }, @@ -83366,6 +86964,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Glue::Partition" }, + { + "$ref": "#/definitions/AWS::Glue::Registry" + }, + { + "$ref": "#/definitions/AWS::Glue::Schema" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersion" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersionMetadata" + }, { "$ref": "#/definitions/AWS::Glue::SecurityConfiguration" }, @@ -83543,6 +87153,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination" + }, { "$ref": "#/definitions/AWS::IoTAnalytics::Channel" }, @@ -83630,6 +87243,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Lambda::Alias" }, + { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig" + }, { "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig" }, @@ -83735,6 +87351,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Neptune::DBSubnetGroup" }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup" + }, { "$ref": "#/definitions/AWS::NetworkManager::CustomerGatewayAssociation" }, @@ -83963,6 +87591,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::S3::BucketPolicy" }, + { + "$ref": "#/definitions/AWS::S3::StorageLens" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -84143,6 +87774,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::ServiceDiscovery::Service" }, + { + "$ref": "#/definitions/AWS::Signer::ProfilePermission" + }, + { + "$ref": "#/definitions/AWS::Signer::SigningProfile" + }, { "$ref": "#/definitions/AWS::StepFunctions::Activity" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 96651dd0de..3d6405f117 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -966,6 +966,9 @@ "BuildSpec": { "type": "string" }, + "CustomHeaders": { + "type": "string" + }, "CustomRules": { "items": { "$ref": "#/definitions/AWS::Amplify::App.CustomRule" @@ -5748,6 +5751,9 @@ "AccessToken": { "type": "string" }, + "ClientCredentialsArn": { + "type": "string" + }, "ConnectorOAuthRequest": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" }, @@ -7512,6 +7518,21 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { @@ -7524,6 +7545,18 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": { "additionalProperties": false, "properties": { @@ -7558,9 +7591,39 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy" }, @@ -8004,9 +8067,15 @@ "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" + }, "HealthCheck": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck" }, + "OutlierDetection": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection" + }, "PortMapping": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping" }, @@ -8105,6 +8174,30 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.OutlierDetection": { + "additionalProperties": false, + "properties": { + "BaseEjectionDuration": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "Interval": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "MaxEjectionPercent": { + "type": "number" + }, + "MaxServerErrors": { + "type": "number" + } + }, + "required": [ + "BaseEjectionDuration", + "Interval", + "MaxEjectionPercent", + "MaxServerErrors" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.PortMapping": { "additionalProperties": false, "properties": { @@ -8193,6 +8286,63 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualNodeSpec": { "additionalProperties": false, "properties": { @@ -8220,6 +8370,18 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.VirtualServiceBackend": { "additionalProperties": false, "properties": { @@ -12882,6 +13044,12 @@ "DesiredvCpus": { "type": "number" }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, "Ec2KeyPair": { "type": "string" }, @@ -12941,6 +13109,21 @@ ], "type": "object" }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { "additionalProperties": false, "properties": { @@ -15207,6 +15390,12 @@ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15347,6 +15536,12 @@ "TargetOriginId": { "type": "string" }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, "TrustedSigners": { "items": { "type": "string" @@ -15723,6 +15918,90 @@ }, "type": "object" }, + "AWS::CloudFront::KeyGroup": { + "additionalProperties": false, + "properties": { + "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": { + "KeyGroupConfig": { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig" + } + }, + "required": [ + "KeyGroupConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::KeyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::KeyGroup.KeyGroupConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Items", + "Name" + ], + "type": "object" + }, "AWS::CloudFront::OriginRequestPolicy": { "additionalProperties": false, "properties": { @@ -15866,7 +16145,7 @@ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig": { + "AWS::CloudFront::PublicKey": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -15898,36 +16177,18 @@ "Properties": { "additionalProperties": false, "properties": { - "EndPoints": { - "items": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" - }, - "type": "array" - }, - "Fields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "SamplingRate": { - "type": "number" + "PublicKeyConfig": { + "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig" } }, "required": [ - "EndPoints", - "Fields", - "Name", - "SamplingRate" + "PublicKeyConfig" ], "type": "object" }, "Type": { "enum": [ - "AWS::CloudFront::RealtimeLogConfig" + "AWS::CloudFront::PublicKey" ], "type": "string" }, @@ -15946,39 +16207,142 @@ ], "type": "object" }, - "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "AWS::CloudFront::PublicKey.PublicKeyConfig": { "additionalProperties": false, "properties": { - "KinesisStreamConfig": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + "CallerReference": { + "type": "string" }, - "StreamType": { + "Comment": { "type": "string" - } - }, - "required": [ - "KinesisStreamConfig", - "StreamType" - ], - "type": "object" - }, - "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { - "additionalProperties": false, - "properties": { - "RoleArn": { + }, + "EncodedKey": { "type": "string" }, - "StreamArn": { + "Name": { "type": "string" } }, "required": [ - "RoleArn", - "StreamArn" + "CallerReference", + "EncodedKey", + "Name" ], "type": "object" }, - "AWS::CloudFront::StreamingDistribution": { + "AWS::CloudFront::RealtimeLogConfig": { + "additionalProperties": false, + "properties": { + "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": { + "EndPoints": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" + }, + "type": "array" + }, + "Fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "EndPoints", + "Fields", + "Name", + "SamplingRate" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::RealtimeLogConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "additionalProperties": false, + "properties": { + "KinesisStreamConfig": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + }, + "StreamType": { + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamArn" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -19275,6 +19639,9 @@ "Code": { "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code" }, + "ConnectionArn": { + "type": "string" + }, "EnableIssues": { "type": "boolean" }, @@ -19295,7 +19662,6 @@ } }, "required": [ - "RepositoryAccessToken", "RepositoryName", "RepositoryOwner" ], @@ -22471,6 +22837,25 @@ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.Action": { + "additionalProperties": false, + "properties": { + "CrossRegionCopy": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CrossRegionCopy", + "Name" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CreateRule": { "additionalProperties": false, "properties": { @@ -22492,6 +22877,25 @@ }, "type": "object" }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Target" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": { "additionalProperties": false, "properties": { @@ -22533,6 +22937,58 @@ ], "type": "object" }, + "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventParameters": { + "additionalProperties": false, + "properties": { + "DescriptionRegex": { + "type": "string" + }, + "EventType": { + "type": "string" + }, + "SnapshotOwner": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EventType", + "SnapshotOwner" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventSource": { + "additionalProperties": false, + "properties": { + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::DLM::LifecyclePolicy.FastRestoreRule": { "additionalProperties": false, "properties": { @@ -22569,6 +23025,15 @@ "AWS::DLM::LifecyclePolicy.PolicyDetails": { "additionalProperties": false, "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" + }, + "type": "array" + }, + "EventSource": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource" + }, "Parameters": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters" }, @@ -22594,11 +23059,6 @@ "type": "array" } }, - "required": [ - "ResourceTypes", - "Schedules", - "TargetTags" - ], "type": "object" }, "AWS::DLM::LifecyclePolicy.RetainRule": { @@ -22640,6 +23100,12 @@ "RetainRule": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" }, + "ShareRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" + }, + "type": "array" + }, "TagsToAdd": { "items": { "$ref": "#/definitions/Tag" @@ -22655,71 +23121,89 @@ }, "type": "object" }, - "AWS::DMS::Certificate": { + "AWS::DLM::LifecyclePolicy.ShareRule": { "additionalProperties": false, "properties": { - "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": { - "CertificateIdentifier": { - "type": "string" - }, - "CertificatePem": { - "type": "string" - }, - "CertificateWallet": { - "type": "string" - } + "TargetAccounts": { + "items": { + "type": "string" }, - "type": "object" + "type": "array" }, - "Type": { - "enum": [ - "AWS::DMS::Certificate" - ], - "type": "string" + "UnshareInterval": { + "type": "number" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "UnshareIntervalUnit": { "type": "string" } }, - "required": [ - "Type" - ], "type": "object" }, - "AWS::DMS::Endpoint": { + "AWS::DMS::Certificate": { + "additionalProperties": false, + "properties": { + "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": { + "CertificateIdentifier": { + "type": "string" + }, + "CertificatePem": { + "type": "string" + }, + "CertificateWallet": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DMS::Endpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23365,7 +23849,7 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline": { + "AWS::DataBrew::Dataset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -23397,49 +23881,143 @@ "Properties": { "additionalProperties": false, "properties": { - "Activate": { - "type": "boolean" + "FormatOptions": { + "type": "object" }, - "Description": { - "type": "string" + "Input": { + "type": "object" }, "Name": { "type": "string" }, - "ParameterObjects": { + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + "$ref": "#/definitions/Tag" }, "type": "array" + } + }, + "required": [ + "Input", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Job": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, - "ParameterValues": { + { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" }, - "PipelineObjects": { + "EncryptionKeyArn": { + "type": "string" + }, + "EncryptionMode": { + "type": "string" + }, + "LogSubscription": { + "type": "string" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutputLocation": { + "type": "object" + }, + "Outputs": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + "$ref": "#/definitions/AWS::DataBrew::Job.Output" }, "type": "array" }, - "PipelineTags": { + "ProjectName": { + "type": "string" + }, + "Recipe": { + "type": "object" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + "$ref": "#/definitions/Tag" }, "type": "array" + }, + "Timeout": { + "type": "number" + }, + "Type": { + "type": "string" } }, "required": [ "Name", - "ParameterObjects" + "RoleArn", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataPipeline::Pipeline" + "AWS::DataBrew::Job" ], "type": "string" }, @@ -23458,115 +24036,904 @@ ], "type": "object" }, - "AWS::DataPipeline::Pipeline.Field": { + "AWS::DataBrew::Job.Output": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "RefValue": { + "CompressionFormat": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterAttribute": { - "additionalProperties": false, - "properties": { - "Key": { + "Format": { "type": "string" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Key", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterObject": { - "additionalProperties": false, - "properties": { - "Attributes": { - "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" - }, - "type": "array" + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, - "Id": { - "type": "string" - } - }, - "required": [ - "Attributes", - "Id" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.ParameterValue": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" + "Overwrite": { + "type": "boolean" }, - "StringValue": { - "type": "string" - } - }, - "required": [ - "Id", - "StringValue" - ], - "type": "object" - }, - "AWS::DataPipeline::Pipeline.PipelineObject": { - "additionalProperties": false, - "properties": { - "Fields": { + "PartitionColumns": { "items": { - "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + "type": "string" }, "type": "array" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" } }, "required": [ - "Fields", - "Id", - "Name" + "Location" ], "type": "object" }, - "AWS::DataPipeline::Pipeline.PipelineTag": { + "AWS::DataBrew::Job.S3Location": { "additionalProperties": false, "properties": { - "Key": { + "Bucket": { "type": "string" }, - "Value": { + "Key": { "type": "string" } }, "required": [ - "Key", - "Value" + "Bucket" ], "type": "object" }, - "AWS::Detective::Graph": { + "AWS::DataBrew::Project": { + "additionalProperties": false, + "properties": { + "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": { + "DatasetName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecipeName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sample": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatasetName", + "Name", + "RecipeName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Steps" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Recipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.Action": { + "additionalProperties": false, + "properties": { + "Operation": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "required": [ + "Operation" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.ConditionExpression": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Condition", + "TargetColumn" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeParameters": { + "additionalProperties": false, + "properties": { + "AggregateFunction": { + "type": "string" + }, + "Base": { + "type": "string" + }, + "CaseStatement": { + "type": "string" + }, + "CategoryMap": { + "type": "string" + }, + "CharsToRemove": { + "type": "string" + }, + "CollapseConsecutiveWhitespace": { + "type": "string" + }, + "ColumnDataType": { + "type": "string" + }, + "ColumnRange": { + "type": "string" + }, + "Count": { + "type": "string" + }, + "CustomCharacters": { + "type": "string" + }, + "CustomStopWords": { + "type": "string" + }, + "CustomValue": { + "type": "string" + }, + "DatasetsColumns": { + "type": "string" + }, + "DateAddValue": { + "type": "string" + }, + "DateTimeFormat": { + "type": "string" + }, + "DateTimeParameters": { + "type": "string" + }, + "DeleteOtherRows": { + "type": "string" + }, + "Delimiter": { + "type": "string" + }, + "EndPattern": { + "type": "string" + }, + "EndPosition": { + "type": "string" + }, + "EndValue": { + "type": "string" + }, + "ExpandContractions": { + "type": "string" + }, + "Exponent": { + "type": "string" + }, + "FalseString": { + "type": "string" + }, + "GroupByAggFunctionOptions": { + "type": "string" + }, + "GroupByColumns": { + "type": "string" + }, + "HiddenColumns": { + "type": "string" + }, + "IgnoreCase": { + "type": "string" + }, + "IncludeInSplit": { + "type": "string" + }, + "Input": { + "type": "object" + }, + "Interval": { + "type": "string" + }, + "IsText": { + "type": "string" + }, + "JoinKeys": { + "type": "string" + }, + "JoinType": { + "type": "string" + }, + "LeftColumns": { + "type": "string" + }, + "Limit": { + "type": "string" + }, + "LowerBound": { + "type": "string" + }, + "MapType": { + "type": "string" + }, + "ModeType": { + "type": "string" + }, + "MultiLine": { + "type": "boolean" + }, + "NumRows": { + "type": "string" + }, + "NumRowsAfter": { + "type": "string" + }, + "NumRowsBefore": { + "type": "string" + }, + "OrderByColumn": { + "type": "string" + }, + "OrderByColumns": { + "type": "string" + }, + "Other": { + "type": "string" + }, + "Pattern": { + "type": "string" + }, + "PatternOption1": { + "type": "string" + }, + "PatternOption2": { + "type": "string" + }, + "PatternOptions": { + "type": "string" + }, + "Period": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "RemoveAllPunctuation": { + "type": "string" + }, + "RemoveAllQuotes": { + "type": "string" + }, + "RemoveAllWhitespace": { + "type": "string" + }, + "RemoveCustomCharacters": { + "type": "string" + }, + "RemoveCustomValue": { + "type": "string" + }, + "RemoveLeadingAndTrailingPunctuation": { + "type": "string" + }, + "RemoveLeadingAndTrailingQuotes": { + "type": "string" + }, + "RemoveLeadingAndTrailingWhitespace": { + "type": "string" + }, + "RemoveLetters": { + "type": "string" + }, + "RemoveNumbers": { + "type": "string" + }, + "RemoveSourceColumn": { + "type": "string" + }, + "RemoveSpecialCharacters": { + "type": "string" + }, + "RightColumns": { + "type": "string" + }, + "SampleSize": { + "type": "string" + }, + "SampleType": { + "type": "string" + }, + "SecondInput": { + "type": "string" + }, + "SecondaryInputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" + }, + "type": "array" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceColumn": { + "type": "string" + }, + "SourceColumn1": { + "type": "string" + }, + "SourceColumn2": { + "type": "string" + }, + "SourceColumns": { + "type": "string" + }, + "StartColumnIndex": { + "type": "string" + }, + "StartPattern": { + "type": "string" + }, + "StartPosition": { + "type": "string" + }, + "StartValue": { + "type": "string" + }, + "StemmingMode": { + "type": "string" + }, + "StepCount": { + "type": "string" + }, + "StepIndex": { + "type": "string" + }, + "StopWordsMode": { + "type": "string" + }, + "Strategy": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "TargetColumnNames": { + "type": "string" + }, + "TargetDateFormat": { + "type": "string" + }, + "TargetIndex": { + "type": "string" + }, + "TimeZone": { + "type": "string" + }, + "TokenizerPattern": { + "type": "string" + }, + "TrueString": { + "type": "string" + }, + "UdfLang": { + "type": "string" + }, + "Units": { + "type": "string" + }, + "UnpivotColumn": { + "type": "string" + }, + "UpperBound": { + "type": "string" + }, + "UseNewDataFrame": { + "type": "string" + }, + "Value": { + "type": "string" + }, + "Value1": { + "type": "string" + }, + "Value2": { + "type": "string" + }, + "ValueColumn": { + "type": "string" + }, + "ViewFrame": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeStep": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action" + }, + "ConditionExpressions": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" + }, + "type": "array" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.SecondaryInput": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Schedule": { + "additionalProperties": false, + "properties": { + "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": { + "CronExpression": { + "type": "string" + }, + "JobNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CronExpression", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Schedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "additionalProperties": false, + "properties": { + "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": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + }, + "type": "array" + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + }, + "type": "array" + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + }, + "type": "array" + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "ParameterObjects" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataPipeline::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + }, + "type": "array" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Detective::Graph": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -24849,6 +26216,9 @@ "ClientCidrBlock": { "type": "string" }, + "ClientConnectOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" + }, "ConnectionLogOptions": { "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions" }, @@ -24954,6 +26324,21 @@ ], "type": "object" }, + "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LambdaFunctionArn": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": { "additionalProperties": false, "properties": { @@ -26668,6 +28053,9 @@ "properties": { "CapacityReservationId": { "type": "string" + }, + "CapacityReservationResourceGroupArn": { + "type": "string" } }, "type": "object" @@ -26729,6 +28117,15 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.HibernationOptions": { "additionalProperties": false, "properties": { @@ -26807,6 +28204,9 @@ }, "type": "array" }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions" + }, "HibernationOptions": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" }, @@ -26927,6 +28327,9 @@ "AWS::EC2::LaunchTemplate.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -26957,6 +28360,9 @@ }, "type": "array" }, + "NetworkCardIndex": { + "type": "number" + }, "NetworkInterfaceId": { "type": "string" }, @@ -30362,6 +31768,12 @@ "AcceptanceRequired": { "type": "boolean" }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" + }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -36458,7 +37870,7 @@ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "UserPoolArn": { "type": "string" @@ -36511,7 +37923,7 @@ "type": "string" }, "SessionTimeout": { - "type": "number" + "type": "string" }, "TokenEndpoint": { "type": "string" @@ -38211,13 +39623,14 @@ "Principal": { "type": "string" }, + "Statement": { + "type": "object" + }, "StatementId": { "type": "string" } }, "required": [ - "Action", - "Principal", "StatementId" ], "type": "object" @@ -40581,7 +41994,6 @@ } }, "required": [ - "ConnectionProperties", "ConnectionType" ], "type": "object" @@ -40748,6 +42160,9 @@ "AWS::Glue::Crawler.S3Target": { "additionalProperties": false, "properties": { + "ConnectionName": { + "type": "string" + }, "Exclusions": { "items": { "type": "string" @@ -40979,9 +42394,36 @@ ], "type": "object" }, + "AWS::Glue::Database.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Database.DatabaseInput": { "additionalProperties": false, "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -40993,6 +42435,24 @@ }, "Parameters": { "type": "object" + }, + "TargetDatabase": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier" + } + }, + "type": "object" + }, + "AWS::Glue::Database.PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal" } }, "type": "object" @@ -41328,6 +42788,9 @@ "Timeout": { "type": "number" }, + "TransformEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption" + }, "TransformParameters": { "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters" }, @@ -41418,6 +42881,33 @@ }, "type": "object" }, + "AWS::Glue::MLTransform.MLUserDataEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MLUserDataEncryptionMode": { + "type": "string" + } + }, + "required": [ + "MLUserDataEncryptionMode" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.TransformEncryption": { + "additionalProperties": false, + "properties": { + "MLUserDataEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption" + }, + "TaskRunSecurityConfigurationName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::MLTransform.TransformParameters": { "additionalProperties": false, "properties": { @@ -41465,30 +42955,506 @@ "Properties": { "additionalProperties": false, "properties": { - "CatalogId": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Partition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Partition.Column": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Partition.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "type": "string" + }, + "SortOrder": { + "type": "number" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Glue::Partition.PartitionInput": { + "additionalProperties": false, + "properties": { + "Parameters": { + "type": "object" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::Glue::Partition.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" + }, + "Compressed": { + "type": "boolean" + }, + "InputFormat": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Registry": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Registry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema": { + "additionalProperties": false, + "properties": { + "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": { + "CheckpointVersion": { + "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion" + }, + "Compatibility": { + "type": "string" + }, + "DataFormat": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Registry": { + "$ref": "#/definitions/AWS::Glue::Schema.Registry" + }, + "SchemaDefinition": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Compatibility", + "DataFormat", + "Name", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema.Registry": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Schema.SchemaVersion": { + "additionalProperties": false, + "properties": { + "IsLatest": { + "type": "boolean" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Schema": { + "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema" + }, + "SchemaDefinition": { + "type": "string" + } + }, + "required": [ + "Schema", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SchemaVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SchemaVersion.Schema": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersionMetadata": { + "additionalProperties": false, + "properties": { + "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": { + "Key": { "type": "string" }, - "DatabaseName": { + "SchemaVersionId": { "type": "string" }, - "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" - }, - "TableName": { + "Value": { "type": "string" } }, "required": [ - "CatalogId", - "DatabaseName", - "PartitionInput", - "TableName" + "Key", + "SchemaVersionId", + "Value" ], "type": "object" }, "Type": { "enum": [ - "AWS::Glue::Partition" + "AWS::Glue::SchemaVersionMetadata" ], "type": "string" }, @@ -41507,147 +43473,6 @@ ], "type": "object" }, - "AWS::Glue::Partition.Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "AWS::Glue::Partition.Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "number" - } - }, - "required": [ - "Column" - ], - "type": "object" - }, - "AWS::Glue::Partition.PartitionInput": { - "additionalProperties": false, - "properties": { - "Parameters": { - "type": "object" - }, - "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Values" - ], - "type": "object" - }, - "AWS::Glue::Partition.SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Glue::Partition.StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Columns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Column" - }, - "type": "array" - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "number" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/AWS::Glue::Partition.Order" - }, - "type": "array" - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, "AWS::Glue::SecurityConfiguration": { "additionalProperties": false, "properties": { @@ -41961,6 +43786,21 @@ }, "type": "object" }, + "AWS::Glue::Table.TableIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Glue::Table.TableInput": { "additionalProperties": false, "properties": { @@ -41991,6 +43831,9 @@ "TableType": { "type": "string" }, + "TargetTable": { + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier" + }, "ViewExpandedText": { "type": "string" }, @@ -48221,6 +50064,76 @@ ], "type": "object" }, + "AWS::IoT::TopicRuleDestination": { + "additionalProperties": false, + "properties": { + "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": { + "HttpUrlProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::TopicRuleDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary": { + "additionalProperties": false, + "properties": { + "ConfirmationUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTAnalytics::Channel": { "additionalProperties": false, "properties": { @@ -50379,6 +52292,9 @@ "KeyPolicy": { "type": "object" }, + "KeySpec": { + "type": "string" + }, "KeyUsage": { "type": "string" }, @@ -54367,6 +56283,101 @@ ], "type": "object" }, + "AWS::Lambda::CodeSigningConfig": { + "additionalProperties": false, + "properties": { + "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": { + "AllowedPublishers": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.AllowedPublishers" + }, + "CodeSigningPolicies": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.CodeSigningPolicies" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "AllowedPublishers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::CodeSigningConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.AllowedPublishers": { + "additionalProperties": false, + "properties": { + "SigningProfileVersionArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SigningProfileVersionArns" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies": { + "additionalProperties": false, + "properties": { + "UntrustedArtifactOnDeployment": { + "type": "string" + } + }, + "required": [ + "UntrustedArtifactOnDeployment" + ], + "type": "object" + }, "AWS::Lambda::EventInvokeConfig": { "additionalProperties": false, "properties": { @@ -54540,6 +56551,9 @@ "ParallelizationFactor": { "type": "number" }, + "PartialBatchResponse": { + "type": "boolean" + }, "Queues": { "items": { "type": "string" @@ -54560,6 +56574,9 @@ "type": "string" }, "type": "array" + }, + "TumblingWindowInSeconds": { + "type": "number" } }, "required": [ @@ -54654,6 +56671,9 @@ "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, + "CodeSigningConfigArn": { + "type": "string" + }, "DeadLetterConfig": { "$ref": "#/definitions/AWS::Lambda::Function.DeadLetterConfig" }, @@ -61105,34 +63125,590 @@ "Properties": { "additionalProperties": false, "properties": { - "DBSubnetGroupDescription": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall": { + "additionalProperties": false, + "properties": { + "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": { + "DeleteProtection": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "FirewallName": { + "type": "string" + }, + "FirewallPolicyArn": { + "type": "string" + }, + "FirewallPolicyChangeProtection": { + "type": "boolean" + }, + "SubnetChangeProtection": { + "type": "boolean" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" + }, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.Tags" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "FirewallName", + "FirewallPolicyArn", + "SubnetMappings", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::Firewall" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.SubnetMapping": { + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" + }, + "FirewallPolicyName": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Tags" + } + }, + "required": [ + "FirewallPolicy", + "FirewallPolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::FirewallPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences" + }, + "StatelessCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomActions" + }, + "StatelessDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessFragmentDefaultActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessActions" + }, + "StatelessRuleGroupReferences": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatefulRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessActions": { + "additionalProperties": false, + "properties": { + "StatelessActions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Priority", + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReferences": { + "additionalProperties": false, + "properties": { + "StatelessRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "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": { + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" + } + }, + "required": [ + "LoggingConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig": { + "additionalProperties": false, + "properties": { + "LogDestination": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "LogDestinationType": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "LogDestination", + "LogDestinationType", + "LogType" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfigs" + } + }, + "required": [ + "LogDestinationConfigs" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup": { + "additionalProperties": false, + "properties": { + "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": { + "Capacity": { + "type": "number" + }, + "Description": { "type": "string" }, - "DBSubnetGroupName": { + "RuleGroup": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup" + }, + "RuleGroupId": { "type": "string" }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" + "RuleGroupName": { + "type": "string" }, "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Tags" + }, + "Type": { + "type": "string" } }, "required": [ - "DBSubnetGroupDescription", - "SubnetIds" + "Capacity", + "RuleGroupName", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBSubnetGroup" + "AWS::NetworkFirewall::RuleGroup" ], "type": "string" }, @@ -61151,6 +63727,496 @@ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Addresses": { + "additionalProperties": false, + "properties": { + "Addresses": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimensions": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Flags": { + "additionalProperties": false, + "properties": { + "Flags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationPort": { + "type": "string" + }, + "Direction": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourcePort": { + "type": "string" + } + }, + "required": [ + "Destination", + "DestinationPort", + "Direction", + "Protocol", + "Source", + "SourcePort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.MatchAttributes": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Destinations": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "Protocols": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ProtocolNumbers" + }, + "SourcePorts": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRanges" + }, + "Sources": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Addresses" + }, + "TCPFlags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlags" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRanges": { + "additionalProperties": false, + "properties": { + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.VariableDefinitionList" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.ProtocolNumbers": { + "additionalProperties": false, + "properties": { + "ProtocolNumbers": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimensions" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleDefinition": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MatchAttributes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes" + } + }, + "required": [ + "Actions", + "MatchAttributes" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleGroup": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "type": "string" + }, + "Settings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOptions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" + } + }, + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList" + }, + "RulesString": { + "type": "string" + }, + "StatefulRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRules" + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "type": "string" + }, + "TargetTypes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TargetTypes" + }, + "Targets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GeneratedRulesType", + "TargetTypes", + "Targets" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Header": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header" + }, + "RuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOptions" + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRules": { + "additionalProperties": false, + "properties": { + "StatefulRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "RuleDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition" + } + }, + "required": [ + "Priority", + "RuleDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRules": { + "additionalProperties": false, + "properties": { + "StatelessRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomActions" + }, + "StatelessRules": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRules" + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + }, + "Masks": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Flags" + } + }, + "required": [ + "Flags" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlags": { + "additionalProperties": false, + "properties": { + "TCPFlags": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Tags": { + "additionalProperties": false, + "properties": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TargetTypes": { + "additionalProperties": false, + "properties": { + "TargetTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.VariableDefinitionList": { + "additionalProperties": false, + "properties": { + "VariableDefinitionList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::NetworkManager::CustomerGatewayAssociation": { "additionalProperties": false, "properties": { @@ -69344,6 +72410,12 @@ "CorsConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration" }, + "IntelligentTieringConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" + }, + "type": "array" + }, "InventoryConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" @@ -69371,6 +72443,9 @@ "ObjectLockEnabled": { "type": "boolean" }, + "OwnershipControls": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls" + }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration" }, @@ -69633,6 +72708,38 @@ ], "type": "object" }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + }, + "Tierings": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Tiering" + }, + "type": "array" + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, "AWS::S3::Bucket.InventoryConfiguration": { "additionalProperties": false, "properties": { @@ -69825,6 +72932,30 @@ }, "type": "object" }, + "AWS::S3::Bucket.OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "type": "string" + } + }, + "type": "object" + }, "AWS::S3::Bucket.PublicAccessBlockConfiguration": { "additionalProperties": false, "properties": { @@ -70205,6 +73336,22 @@ ], "type": "object" }, + "AWS::S3::Bucket.Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "type": "string" + }, + "Days": { + "type": "number" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, "AWS::S3::Bucket.TopicConfiguration": { "additionalProperties": false, "properties": { @@ -70341,6 +73488,261 @@ ], "type": "object" }, + "AWS::S3::StorageLens": { + "additionalProperties": false, + "properties": { + "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": { + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, "AWS::SDB::Domain": { "additionalProperties": false, "properties": { @@ -73251,6 +76653,9 @@ }, "ModelPackageName": { "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.MultiModelConfig" } }, "type": "object" @@ -73267,6 +76672,15 @@ ], "type": "object" }, + "AWS::SageMaker::Model.MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -73321,18 +76735,12 @@ "Properties": { "additionalProperties": false, "properties": { - "CreationTime": { - "type": "string" - }, "EndpointName": { "type": "string" }, "FailureReason": { "type": "string" }, - "LastModifiedTime": { - "type": "string" - }, "LastMonitoringExecutionSummary": { "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary" }, @@ -77693,14 +81101,94 @@ "type": "array" } }, - "required": [ - "Name" - ], + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::PublicDnsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + }, + "Name": { + "type": "string" + }, + "NamespaceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::PublicDnsNamespace" + "AWS::ServiceDiscovery::Service" ], "type": "string" }, @@ -77714,12 +81202,75 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ServiceDiscovery::Service": { + "AWS::ServiceDiscovery::Service.DnsConfig": { + "additionalProperties": false, + "properties": { + "DnsRecords": { + "items": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + }, + "type": "array" + }, + "NamespaceId": { + "type": "string" + }, + "RoutingPolicy": { + "type": "string" + } + }, + "required": [ + "DnsRecords" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsRecord": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "TTL", + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + }, + "ResourcePath": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Signer::ProfilePermission": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -77751,36 +81302,33 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Action": { "type": "string" }, - "DnsConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" - }, - "HealthCheckConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" - }, - "HealthCheckCustomConfig": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + "Principal": { + "type": "string" }, - "Name": { + "ProfileName": { "type": "string" }, - "NamespaceId": { + "ProfileVersion": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "StatementId": { + "type": "string" } }, + "required": [ + "Action", + "Principal", + "ProfileName", + "StatementId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::Service" + "AWS::Signer::ProfilePermission" ], "type": "string" }, @@ -77794,69 +81342,89 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsConfig": { + "AWS::Signer::SigningProfile": { "additionalProperties": false, "properties": { - "DnsRecords": { - "items": { - "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + "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": { + "PlatformId": { + "type": "string" + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "PlatformId" + ], + "type": "object" }, - "NamespaceId": { + "Type": { + "enum": [ + "AWS::Signer::SigningProfile" + ], "type": "string" }, - "RoutingPolicy": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "DnsRecords" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsRecord": { + "AWS::Signer::SigningProfile.SignatureValidityPeriod": { "additionalProperties": false, "properties": { - "TTL": { - "type": "number" - }, "Type": { "type": "string" - } - }, - "required": [ - "TTL", - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { - "type": "number" }, - "ResourcePath": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { + "Value": { "type": "number" } }, @@ -78251,6 +81819,15 @@ "ActiveTracing": { "type": "boolean" }, + "EnvironmentVariables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, "MemoryInMB": { "type": "number" }, @@ -82772,9 +86349,15 @@ { "$ref": "#/definitions/AWS::CloudFront::Distribution" }, + { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup" + }, { "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy" }, + { + "$ref": "#/definitions/AWS::CloudFront::PublicKey" + }, { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, @@ -82946,6 +86529,21 @@ { "$ref": "#/definitions/AWS::DMS::ReplicationTask" }, + { + "$ref": "#/definitions/AWS::DataBrew::Dataset" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Job" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Project" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Recipe" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Schedule" + }, { "$ref": "#/definitions/AWS::DataPipeline::Pipeline" }, @@ -83363,6 +86961,18 @@ { "$ref": "#/definitions/AWS::Glue::Partition" }, + { + "$ref": "#/definitions/AWS::Glue::Registry" + }, + { + "$ref": "#/definitions/AWS::Glue::Schema" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersion" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersionMetadata" + }, { "$ref": "#/definitions/AWS::Glue::SecurityConfiguration" }, @@ -83540,6 +87150,9 @@ { "$ref": "#/definitions/AWS::IoT::TopicRule" }, + { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination" + }, { "$ref": "#/definitions/AWS::IoTAnalytics::Channel" }, @@ -83627,6 +87240,9 @@ { "$ref": "#/definitions/AWS::Lambda::Alias" }, + { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig" + }, { "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig" }, @@ -83732,6 +87348,18 @@ { "$ref": "#/definitions/AWS::Neptune::DBSubnetGroup" }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup" + }, { "$ref": "#/definitions/AWS::NetworkManager::CustomerGatewayAssociation" }, @@ -83960,6 +87588,9 @@ { "$ref": "#/definitions/AWS::S3::BucketPolicy" }, + { + "$ref": "#/definitions/AWS::S3::StorageLens" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -84140,6 +87771,12 @@ { "$ref": "#/definitions/AWS::ServiceDiscovery::Service" }, + { + "$ref": "#/definitions/AWS::Signer::ProfilePermission" + }, + { + "$ref": "#/definitions/AWS::Signer::SigningProfile" + }, { "$ref": "#/definitions/AWS::StepFunctions::Activity" },