From bbbbbeda4560c6d4296324edea11392ed31cc8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Fonseca?= Date: Fri, 11 Feb 2022 00:08:13 +0000 Subject: [PATCH] fix(schema): CloudFormation Updates --- cloudformation/all.go | 100 +++++ .../apprunner/aws-apprunner-service.go | 5 + ...s-apprunner-service_egressconfiguration.go | 40 ++ ...-apprunner-service_networkconfiguration.go | 35 ++ .../apprunner/aws-apprunner-vpcconnector.go | 122 +++++ .../aws-autoscaling-launchconfiguration.go | 40 +- ...scaling-launchconfiguration_blockdevice.go | 16 +- ...-launchconfiguration_blockdevicemapping.go | 10 +- ...ing-launchconfiguration_metadataoptions.go | 8 +- .../aws-cloudformation-hookdefaultversion.go | 116 +++++ .../aws-cloudformation-hooktypeconfig.go | 121 +++++ .../aws-cloudformation-hookversion.go | 121 +++++ ...loudformation-hookversion_loggingconfig.go | 40 ++ .../aws-customerprofiles-integration.go | 7 +- ...rprofiles-integration_objecttypemapping.go | 40 ++ cloudformation/docdb/aws-docdb-dbcluster.go | 5 + ...namodb-globaltable_replicaspecification.go | 5 + cloudformation/ec2/aws-ec2-subnet.go | 20 + ...c2-subnet_privatednsnameoptionsonlaunch.go | 45 ++ cloudformation/ec2/aws-ec2-vpc.go | 10 + cloudformation/ec2/aws-ec2-vpccidrblock.go | 20 + cloudformation/eks/aws-eks-nodegroup.go | 2 +- .../eks/aws-eks-nodegroup_scalingconfig.go | 6 +- .../ses/aws-ses-template_template.go | 2 +- cloudformation/sqs/aws-sqs-queue.go | 32 +- schema/cdk.go | 420 +++++++++++++++++- schema/cdk.schema.json | 420 +++++++++++++++++- schema/cloudformation.go | 420 +++++++++++++++++- schema/cloudformation.schema.json | 420 +++++++++++++++++- schema/sam.go | 420 +++++++++++++++++- schema/sam.schema.json | 420 +++++++++++++++++- 31 files changed, 3417 insertions(+), 71 deletions(-) create mode 100644 cloudformation/apprunner/aws-apprunner-service_egressconfiguration.go create mode 100644 cloudformation/apprunner/aws-apprunner-service_networkconfiguration.go create mode 100644 cloudformation/apprunner/aws-apprunner-vpcconnector.go create mode 100644 cloudformation/cloudformation/aws-cloudformation-hookdefaultversion.go create mode 100644 cloudformation/cloudformation/aws-cloudformation-hooktypeconfig.go create mode 100644 cloudformation/cloudformation/aws-cloudformation-hookversion.go create mode 100644 cloudformation/cloudformation/aws-cloudformation-hookversion_loggingconfig.go create mode 100644 cloudformation/customerprofiles/aws-customerprofiles-integration_objecttypemapping.go create mode 100644 cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go diff --git a/cloudformation/all.go b/cloudformation/all.go index f271f77522..a8d3021166 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -260,6 +260,7 @@ func AllResources() map[string]Resource { "AWS::AppMesh::VirtualRouter": &appmesh.VirtualRouter{}, "AWS::AppMesh::VirtualService": &appmesh.VirtualService{}, "AWS::AppRunner::Service": &apprunner.Service{}, + "AWS::AppRunner::VpcConnector": &apprunner.VpcConnector{}, "AWS::AppStream::AppBlock": &appstream.AppBlock{}, "AWS::AppStream::Application": &appstream.Application{}, "AWS::AppStream::ApplicationEntitlementAssociation": &appstream.ApplicationEntitlementAssociation{}, @@ -319,6 +320,9 @@ func AllResources() map[string]Resource { "AWS::Chatbot::SlackChannelConfiguration": &chatbot.SlackChannelConfiguration{}, "AWS::Cloud9::EnvironmentEC2": &cloud9.EnvironmentEC2{}, "AWS::CloudFormation::CustomResource": &cloudformation.CustomResource{}, + "AWS::CloudFormation::HookDefaultVersion": &cloudformation.HookDefaultVersion{}, + "AWS::CloudFormation::HookTypeConfig": &cloudformation.HookTypeConfig{}, + "AWS::CloudFormation::HookVersion": &cloudformation.HookVersion{}, "AWS::CloudFormation::Macro": &cloudformation.Macro{}, "AWS::CloudFormation::ModuleDefaultVersion": &cloudformation.ModuleDefaultVersion{}, "AWS::CloudFormation::ModuleVersion": &cloudformation.ModuleVersion{}, @@ -2649,6 +2653,30 @@ func (t *Template) GetAppRunnerServiceWithName(name string) (*apprunner.Service, return nil, fmt.Errorf("resource %q of type apprunner.Service not found", name) } +// GetAllAppRunnerVpcConnectorResources retrieves all apprunner.VpcConnector items from an AWS CloudFormation template +func (t *Template) GetAllAppRunnerVpcConnectorResources() map[string]*apprunner.VpcConnector { + results := map[string]*apprunner.VpcConnector{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *apprunner.VpcConnector: + results[name] = resource + } + } + return results +} + +// GetAppRunnerVpcConnectorWithName retrieves all apprunner.VpcConnector items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAppRunnerVpcConnectorWithName(name string) (*apprunner.VpcConnector, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *apprunner.VpcConnector: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type apprunner.VpcConnector not found", name) +} + // GetAllAppStreamAppBlockResources retrieves all appstream.AppBlock items from an AWS CloudFormation template func (t *Template) GetAllAppStreamAppBlockResources() map[string]*appstream.AppBlock { results := map[string]*appstream.AppBlock{} @@ -4065,6 +4093,78 @@ func (t *Template) GetCloudFormationCustomResourceWithName(name string) (*cloudf return nil, fmt.Errorf("resource %q of type cloudformation.CustomResource not found", name) } +// GetAllCloudFormationHookDefaultVersionResources retrieves all cloudformation.HookDefaultVersion items from an AWS CloudFormation template +func (t *Template) GetAllCloudFormationHookDefaultVersionResources() map[string]*cloudformation.HookDefaultVersion { + results := map[string]*cloudformation.HookDefaultVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudformation.HookDefaultVersion: + results[name] = resource + } + } + return results +} + +// GetCloudFormationHookDefaultVersionWithName retrieves all cloudformation.HookDefaultVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFormationHookDefaultVersionWithName(name string) (*cloudformation.HookDefaultVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudformation.HookDefaultVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudformation.HookDefaultVersion not found", name) +} + +// GetAllCloudFormationHookTypeConfigResources retrieves all cloudformation.HookTypeConfig items from an AWS CloudFormation template +func (t *Template) GetAllCloudFormationHookTypeConfigResources() map[string]*cloudformation.HookTypeConfig { + results := map[string]*cloudformation.HookTypeConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudformation.HookTypeConfig: + results[name] = resource + } + } + return results +} + +// GetCloudFormationHookTypeConfigWithName retrieves all cloudformation.HookTypeConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFormationHookTypeConfigWithName(name string) (*cloudformation.HookTypeConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudformation.HookTypeConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudformation.HookTypeConfig not found", name) +} + +// GetAllCloudFormationHookVersionResources retrieves all cloudformation.HookVersion items from an AWS CloudFormation template +func (t *Template) GetAllCloudFormationHookVersionResources() map[string]*cloudformation.HookVersion { + results := map[string]*cloudformation.HookVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudformation.HookVersion: + results[name] = resource + } + } + return results +} + +// GetCloudFormationHookVersionWithName retrieves all cloudformation.HookVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFormationHookVersionWithName(name string) (*cloudformation.HookVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudformation.HookVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudformation.HookVersion not found", name) +} + // GetAllCloudFormationMacroResources retrieves all cloudformation.Macro items from an AWS CloudFormation template func (t *Template) GetAllCloudFormationMacroResources() map[string]*cloudformation.Macro { results := map[string]*cloudformation.Macro{} diff --git a/cloudformation/apprunner/aws-apprunner-service.go b/cloudformation/apprunner/aws-apprunner-service.go index 39e6eb73ad..84db39c6d4 100644 --- a/cloudformation/apprunner/aws-apprunner-service.go +++ b/cloudformation/apprunner/aws-apprunner-service.go @@ -33,6 +33,11 @@ type Service struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-instanceconfiguration InstanceConfiguration *Service_InstanceConfiguration `json:"InstanceConfiguration,omitempty"` + // NetworkConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-networkconfiguration + NetworkConfiguration *Service_NetworkConfiguration `json:"NetworkConfiguration,omitempty"` + // ServiceName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-servicename diff --git a/cloudformation/apprunner/aws-apprunner-service_egressconfiguration.go b/cloudformation/apprunner/aws-apprunner-service_egressconfiguration.go new file mode 100644 index 0000000000..e1c2fbdbca --- /dev/null +++ b/cloudformation/apprunner/aws-apprunner-service_egressconfiguration.go @@ -0,0 +1,40 @@ +package apprunner + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Service_EgressConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.EgressConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-egressconfiguration.html +type Service_EgressConfiguration struct { + + // EgressType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-egressconfiguration.html#cfn-apprunner-service-egressconfiguration-egresstype + EgressType string `json:"EgressType,omitempty"` + + // VpcConnectorArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-egressconfiguration.html#cfn-apprunner-service-egressconfiguration-vpcconnectorarn + VpcConnectorArn string `json:"VpcConnectorArn,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 *Service_EgressConfiguration) AWSCloudFormationType() string { + return "AWS::AppRunner::Service.EgressConfiguration" +} diff --git a/cloudformation/apprunner/aws-apprunner-service_networkconfiguration.go b/cloudformation/apprunner/aws-apprunner-service_networkconfiguration.go new file mode 100644 index 0000000000..c28f0c340d --- /dev/null +++ b/cloudformation/apprunner/aws-apprunner-service_networkconfiguration.go @@ -0,0 +1,35 @@ +package apprunner + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Service_NetworkConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.NetworkConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-networkconfiguration.html +type Service_NetworkConfiguration struct { + + // EgressConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-networkconfiguration.html#cfn-apprunner-service-networkconfiguration-egressconfiguration + EgressConfiguration *Service_EgressConfiguration `json:"EgressConfiguration,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 *Service_NetworkConfiguration) AWSCloudFormationType() string { + return "AWS::AppRunner::Service.NetworkConfiguration" +} diff --git a/cloudformation/apprunner/aws-apprunner-vpcconnector.go b/cloudformation/apprunner/aws-apprunner-vpcconnector.go new file mode 100644 index 0000000000..4a9dfb2c14 --- /dev/null +++ b/cloudformation/apprunner/aws-apprunner-vpcconnector.go @@ -0,0 +1,122 @@ +package apprunner + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// VpcConnector AWS CloudFormation Resource (AWS::AppRunner::VpcConnector) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html +type VpcConnector struct { + + // SecurityGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-securitygroups + SecurityGroups []string `json:"SecurityGroups,omitempty"` + + // Subnets AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-subnets + Subnets []string `json:"Subnets,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // VpcConnectorName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-vpcconnectorname + VpcConnectorName string `json:"VpcConnectorName,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 *VpcConnector) AWSCloudFormationType() string { + return "AWS::AppRunner::VpcConnector" +} + +// 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 VpcConnector) MarshalJSON() ([]byte, error) { + type Properties VpcConnector + 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 *VpcConnector) UnmarshalJSON(b []byte) error { + type Properties VpcConnector + 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 = VpcConnector(*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/autoscaling/aws-autoscaling-launchconfiguration.go b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go index 60023577e9..60b058e797 100644 --- a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go +++ b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go @@ -9,102 +9,102 @@ import ( ) // LaunchConfiguration AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html type LaunchConfiguration struct { // AssociatePublicIpAddress AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cf-as-launchconfig-associatepubip + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-associatepublicipaddress AssociatePublicIpAddress bool `json:"AssociatePublicIpAddress,omitempty"` // BlockDeviceMappings AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-blockdevicemappings + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-blockdevicemappings BlockDeviceMappings []LaunchConfiguration_BlockDeviceMapping `json:"BlockDeviceMappings,omitempty"` // ClassicLinkVPCId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-classiclinkvpcid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-classiclinkvpcid ClassicLinkVPCId string `json:"ClassicLinkVPCId,omitempty"` // ClassicLinkVPCSecurityGroups AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-classiclinkvpcsecuritygroups + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-classiclinkvpcsecuritygroups ClassicLinkVPCSecurityGroups []string `json:"ClassicLinkVPCSecurityGroups,omitempty"` // EbsOptimized AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-ebsoptimized + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-ebsoptimized EbsOptimized bool `json:"EbsOptimized,omitempty"` // IamInstanceProfile AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-iaminstanceprofile + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-iaminstanceprofile IamInstanceProfile string `json:"IamInstanceProfile,omitempty"` // ImageId AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-imageid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-imageid ImageId string `json:"ImageId,omitempty"` // InstanceId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instanceid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-instanceid InstanceId string `json:"InstanceId,omitempty"` // InstanceMonitoring AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instancemonitoring + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-instancemonitoring InstanceMonitoring bool `json:"InstanceMonitoring,omitempty"` // InstanceType AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instancetype + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-instancetype InstanceType string `json:"InstanceType,omitempty"` // KernelId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-kernelid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-kernelid KernelId string `json:"KernelId,omitempty"` // KeyName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-keyname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-keyname KeyName string `json:"KeyName,omitempty"` // LaunchConfigurationName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-launchconfigurationname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-launchconfigurationname LaunchConfigurationName string `json:"LaunchConfigurationName,omitempty"` // MetadataOptions AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-metadataoptions + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions MetadataOptions *LaunchConfiguration_MetadataOptions `json:"MetadataOptions,omitempty"` // PlacementTenancy AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-placementtenancy + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-placementtenancy PlacementTenancy string `json:"PlacementTenancy,omitempty"` // RamDiskId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-ramdiskid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-ramdiskid RamDiskId string `json:"RamDiskId,omitempty"` // SecurityGroups AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-securitygroups + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-securitygroups SecurityGroups []string `json:"SecurityGroups,omitempty"` // SpotPrice AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-spotprice + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-spotprice SpotPrice string `json:"SpotPrice,omitempty"` // UserData AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-userdata + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-userdata UserData string `json:"UserData,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go index 36fb5dbc16..f929d8c1d7 100644 --- a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go +++ b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go @@ -5,42 +5,42 @@ import ( ) // LaunchConfiguration_BlockDevice AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.BlockDevice) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html type LaunchConfiguration_BlockDevice struct { // DeleteOnTermination AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-deleteonterm + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-deleteontermination DeleteOnTermination bool `json:"DeleteOnTermination,omitempty"` // Encrypted AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-encrypted + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-encrypted Encrypted bool `json:"Encrypted,omitempty"` // Iops AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-iops + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-iops Iops int `json:"Iops,omitempty"` // SnapshotId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-snapshotid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-snapshotid SnapshotId string `json:"SnapshotId,omitempty"` // Throughput AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-throughput + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-throughput Throughput int `json:"Throughput,omitempty"` // VolumeSize AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-volumesize + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-volumesize VolumeSize int `json:"VolumeSize,omitempty"` // VolumeType AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-volumetype + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html#cfn-autoscaling-launchconfiguration-blockdevice-volumetype VolumeType string `json:"VolumeType,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go index 3d5847ae4c..d94e164df5 100644 --- a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go +++ b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go @@ -5,27 +5,27 @@ import ( ) // LaunchConfiguration_BlockDeviceMapping AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html type LaunchConfiguration_BlockDeviceMapping struct { // DeviceName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-devicename + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html#cfn-autoscaling-launchconfiguration-blockdevicemapping-devicename DeviceName string `json:"DeviceName,omitempty"` // Ebs AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-ebs + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html#cfn-autoscaling-launchconfiguration-blockdevicemapping-ebs Ebs *LaunchConfiguration_BlockDevice `json:"Ebs,omitempty"` // NoDevice AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-nodevice + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html#cfn-autoscaling-launchconfiguration-blockdevicemapping-nodevice NoDevice bool `json:"NoDevice,omitempty"` // VirtualName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-virtualname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html#cfn-autoscaling-launchconfiguration-blockdevicemapping-virtualname VirtualName string `json:"VirtualName,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go index 6bb9165a64..80f31953c5 100644 --- a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go +++ b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go @@ -5,22 +5,22 @@ import ( ) // LaunchConfiguration_MetadataOptions AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.MetadataOptions) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html type LaunchConfiguration_MetadataOptions struct { // HttpEndpoint AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html#cfn-autoscaling-launchconfig-metadataoptions-httpendpoint + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html#cfn-autoscaling-launchconfiguration-metadataoptions-httpendpoint HttpEndpoint string `json:"HttpEndpoint,omitempty"` // HttpPutResponseHopLimit AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html#cfn-autoscaling-launchconfig-metadataoptions-httpputresponsehoplimit + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html#cfn-autoscaling-launchconfiguration-metadataoptions-httpputresponsehoplimit HttpPutResponseHopLimit int `json:"HttpPutResponseHopLimit,omitempty"` // HttpTokens AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html#cfn-autoscaling-launchconfig-metadataoptions-httptokens + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html#cfn-autoscaling-launchconfiguration-metadataoptions-httptokens HttpTokens string `json:"HttpTokens,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/cloudformation/aws-cloudformation-hookdefaultversion.go b/cloudformation/cloudformation/aws-cloudformation-hookdefaultversion.go new file mode 100644 index 0000000000..62e8b66410 --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-hookdefaultversion.go @@ -0,0 +1,116 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// HookDefaultVersion AWS CloudFormation Resource (AWS::CloudFormation::HookDefaultVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html +type HookDefaultVersion struct { + + // TypeName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typename + TypeName string `json:"TypeName,omitempty"` + + // TypeVersionArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-typeversionarn + TypeVersionArn string `json:"TypeVersionArn,omitempty"` + + // VersionId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html#cfn-cloudformation-hookdefaultversion-versionid + VersionId string `json:"VersionId,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 *HookDefaultVersion) AWSCloudFormationType() string { + return "AWS::CloudFormation::HookDefaultVersion" +} + +// 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 HookDefaultVersion) MarshalJSON() ([]byte, error) { + type Properties HookDefaultVersion + 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 *HookDefaultVersion) UnmarshalJSON(b []byte) error { + type Properties HookDefaultVersion + 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 = HookDefaultVersion(*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/cloudformation/aws-cloudformation-hooktypeconfig.go b/cloudformation/cloudformation/aws-cloudformation-hooktypeconfig.go new file mode 100644 index 0000000000..35213c525b --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-hooktypeconfig.go @@ -0,0 +1,121 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// HookTypeConfig AWS CloudFormation Resource (AWS::CloudFormation::HookTypeConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html +type HookTypeConfig struct { + + // Configuration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configuration + Configuration string `json:"Configuration,omitempty"` + + // ConfigurationAlias AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-configurationalias + ConfigurationAlias string `json:"ConfigurationAlias,omitempty"` + + // TypeArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typearn + TypeArn string `json:"TypeArn,omitempty"` + + // TypeName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html#cfn-cloudformation-hooktypeconfig-typename + TypeName string `json:"TypeName,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 *HookTypeConfig) AWSCloudFormationType() string { + return "AWS::CloudFormation::HookTypeConfig" +} + +// 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 HookTypeConfig) MarshalJSON() ([]byte, error) { + type Properties HookTypeConfig + 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 *HookTypeConfig) UnmarshalJSON(b []byte) error { + type Properties HookTypeConfig + 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 = HookTypeConfig(*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/cloudformation/aws-cloudformation-hookversion.go b/cloudformation/cloudformation/aws-cloudformation-hookversion.go new file mode 100644 index 0000000000..aae8da4dac --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-hookversion.go @@ -0,0 +1,121 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// HookVersion AWS CloudFormation Resource (AWS::CloudFormation::HookVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html +type HookVersion struct { + + // ExecutionRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-executionrolearn + ExecutionRoleArn string `json:"ExecutionRoleArn,omitempty"` + + // LoggingConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-loggingconfig + LoggingConfig *HookVersion_LoggingConfig `json:"LoggingConfig,omitempty"` + + // SchemaHandlerPackage AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-schemahandlerpackage + SchemaHandlerPackage string `json:"SchemaHandlerPackage,omitempty"` + + // TypeName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookversion.html#cfn-cloudformation-hookversion-typename + TypeName string `json:"TypeName,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 *HookVersion) AWSCloudFormationType() string { + return "AWS::CloudFormation::HookVersion" +} + +// 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 HookVersion) MarshalJSON() ([]byte, error) { + type Properties HookVersion + 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 *HookVersion) UnmarshalJSON(b []byte) error { + type Properties HookVersion + 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 = HookVersion(*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/cloudformation/aws-cloudformation-hookversion_loggingconfig.go b/cloudformation/cloudformation/aws-cloudformation-hookversion_loggingconfig.go new file mode 100644 index 0000000000..c8177d7de4 --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-hookversion_loggingconfig.go @@ -0,0 +1,40 @@ +package cloudformation + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// HookVersion_LoggingConfig AWS CloudFormation Resource (AWS::CloudFormation::HookVersion.LoggingConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html +type HookVersion_LoggingConfig struct { + + // LogGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html#cfn-cloudformation-hookversion-loggingconfig-loggroupname + LogGroupName string `json:"LogGroupName,omitempty"` + + // LogRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html#cfn-cloudformation-hookversion-loggingconfig-logrolearn + LogRoleArn string `json:"LogRoleArn,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 *HookVersion_LoggingConfig) AWSCloudFormationType() string { + return "AWS::CloudFormation::HookVersion.LoggingConfig" +} diff --git a/cloudformation/customerprofiles/aws-customerprofiles-integration.go b/cloudformation/customerprofiles/aws-customerprofiles-integration.go index e77697a04d..071c123b31 100644 --- a/cloudformation/customerprofiles/aws-customerprofiles-integration.go +++ b/cloudformation/customerprofiles/aws-customerprofiles-integration.go @@ -24,10 +24,15 @@ type Integration struct { FlowDefinition *Integration_FlowDefinition `json:"FlowDefinition,omitempty"` // ObjectTypeName AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-objecttypename ObjectTypeName string `json:"ObjectTypeName,omitempty"` + // ObjectTypeNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-objecttypenames + ObjectTypeNames []Integration_ObjectTypeMapping `json:"ObjectTypeNames,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-tags diff --git a/cloudformation/customerprofiles/aws-customerprofiles-integration_objecttypemapping.go b/cloudformation/customerprofiles/aws-customerprofiles-integration_objecttypemapping.go new file mode 100644 index 0000000000..c1becb4815 --- /dev/null +++ b/cloudformation/customerprofiles/aws-customerprofiles-integration_objecttypemapping.go @@ -0,0 +1,40 @@ +package customerprofiles + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Integration_ObjectTypeMapping AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.ObjectTypeMapping) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html +type Integration_ObjectTypeMapping struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html#cfn-customerprofiles-integration-objecttypemapping-key + Key string `json:"Key,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html#cfn-customerprofiles-integration-objecttypemapping-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 *Integration_ObjectTypeMapping) AWSCloudFormationType() string { + return "AWS::CustomerProfiles::Integration.ObjectTypeMapping" +} diff --git a/cloudformation/docdb/aws-docdb-dbcluster.go b/cloudformation/docdb/aws-docdb-dbcluster.go index ddb4d1e414..5e7b8f41e8 100644 --- a/cloudformation/docdb/aws-docdb-dbcluster.go +++ b/cloudformation/docdb/aws-docdb-dbcluster.go @@ -23,6 +23,11 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-backupretentionperiod BackupRetentionPeriod int `json:"BackupRetentionPeriod,omitempty"` + // CopyTagsToSnapshot AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-copytagstosnapshot + CopyTagsToSnapshot bool `json:"CopyTagsToSnapshot,omitempty"` + // DBClusterIdentifier AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusteridentifier diff --git a/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go b/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go index 0c3f387beb..58a4145193 100644 --- a/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go +++ b/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go @@ -39,6 +39,11 @@ type GlobalTable_ReplicaSpecification struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-ssespecification SSESpecification *GlobalTable_ReplicaSSESpecification `json:"SSESpecification,omitempty"` + // TableClass AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-tableclass + TableClass string `json:"TableClass,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-tags diff --git a/cloudformation/ec2/aws-ec2-subnet.go b/cloudformation/ec2/aws-ec2-subnet.go index 8fc57bf885..4dcf7f9530 100644 --- a/cloudformation/ec2/aws-ec2-subnet.go +++ b/cloudformation/ec2/aws-ec2-subnet.go @@ -23,16 +23,31 @@ type Subnet struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzone AvailabilityZone string `json:"AvailabilityZone,omitempty"` + // AvailabilityZoneId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzoneid + AvailabilityZoneId string `json:"AvailabilityZoneId,omitempty"` + // CidrBlock AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-cidrblock CidrBlock string `json:"CidrBlock,omitempty"` + // EnableDns64 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-enabledns64 + EnableDns64 bool `json:"EnableDns64,omitempty"` + // Ipv6CidrBlock AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-ipv6cidrblock Ipv6CidrBlock string `json:"Ipv6CidrBlock,omitempty"` + // Ipv6Native AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-ipv6native + Ipv6Native bool `json:"Ipv6Native,omitempty"` + // MapPublicIpOnLaunch AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-mappubliciponlaunch @@ -43,6 +58,11 @@ type Subnet struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-outpostarn OutpostArn string `json:"OutpostArn,omitempty"` + // PrivateDnsNameOptionsOnLaunch AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch + PrivateDnsNameOptionsOnLaunch *Subnet_PrivateDnsNameOptionsOnLaunch `json:"PrivateDnsNameOptionsOnLaunch,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-tags diff --git a/cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go b/cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go new file mode 100644 index 0000000000..dfb1d612cd --- /dev/null +++ b/cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go @@ -0,0 +1,45 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Subnet_PrivateDnsNameOptionsOnLaunch AWS CloudFormation Resource (AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html +type Subnet_PrivateDnsNameOptionsOnLaunch struct { + + // EnableResourceNameDnsAAAARecord AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch-enableresourcenamednsaaaarecord + EnableResourceNameDnsAAAARecord bool `json:"EnableResourceNameDnsAAAARecord,omitempty"` + + // EnableResourceNameDnsARecord AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch-enableresourcenamednsarecord + EnableResourceNameDnsARecord bool `json:"EnableResourceNameDnsARecord,omitempty"` + + // HostnameType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch-hostnametype + HostnameType string `json:"HostnameType,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 *Subnet_PrivateDnsNameOptionsOnLaunch) AWSCloudFormationType() string { + return "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" +} diff --git a/cloudformation/ec2/aws-ec2-vpc.go b/cloudformation/ec2/aws-ec2-vpc.go index be67bf4981..daba43501b 100644 --- a/cloudformation/ec2/aws-ec2-vpc.go +++ b/cloudformation/ec2/aws-ec2-vpc.go @@ -33,6 +33,16 @@ type VPC struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-instancetenancy InstanceTenancy string `json:"InstanceTenancy,omitempty"` + // Ipv4IpamPoolId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-ec2-vpc-ipv4ipampoolid + Ipv4IpamPoolId string `json:"Ipv4IpamPoolId,omitempty"` + + // Ipv4NetmaskLength AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-ec2-vpc-ipv4netmasklength + Ipv4NetmaskLength int `json:"Ipv4NetmaskLength,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-tags diff --git a/cloudformation/ec2/aws-ec2-vpccidrblock.go b/cloudformation/ec2/aws-ec2-vpccidrblock.go index a9b896e480..a63cc6ff96 100644 --- a/cloudformation/ec2/aws-ec2-vpccidrblock.go +++ b/cloudformation/ec2/aws-ec2-vpccidrblock.go @@ -22,11 +22,31 @@ type VPCCidrBlock struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-cidrblock CidrBlock string `json:"CidrBlock,omitempty"` + // Ipv4IpamPoolId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv4ipampoolid + Ipv4IpamPoolId string `json:"Ipv4IpamPoolId,omitempty"` + + // Ipv4NetmaskLength AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv4netmasklength + Ipv4NetmaskLength int `json:"Ipv4NetmaskLength,omitempty"` + // Ipv6CidrBlock AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv6cidrblock Ipv6CidrBlock string `json:"Ipv6CidrBlock,omitempty"` + // Ipv6IpamPoolId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv6ipampoolid + Ipv6IpamPoolId string `json:"Ipv6IpamPoolId,omitempty"` + + // Ipv6NetmaskLength AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv6netmasklength + Ipv6NetmaskLength int `json:"Ipv6NetmaskLength,omitempty"` + // Ipv6Pool AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv6pool diff --git a/cloudformation/eks/aws-eks-nodegroup.go b/cloudformation/eks/aws-eks-nodegroup.go index aa145880cd..e99182e554 100644 --- a/cloudformation/eks/aws-eks-nodegroup.go +++ b/cloudformation/eks/aws-eks-nodegroup.go @@ -30,7 +30,7 @@ type Nodegroup struct { // DiskSize AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize - DiskSize float64 `json:"DiskSize,omitempty"` + DiskSize int `json:"DiskSize,omitempty"` // ForceUpdateEnabled AWS CloudFormation Property // Required: false diff --git a/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go b/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go index 3e83d41a23..deeabbadaa 100644 --- a/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go +++ b/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go @@ -11,17 +11,17 @@ type Nodegroup_ScalingConfig struct { // DesiredSize AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-desiredsize - DesiredSize float64 `json:"DesiredSize,omitempty"` + DesiredSize int `json:"DesiredSize,omitempty"` // MaxSize AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-maxsize - MaxSize float64 `json:"MaxSize,omitempty"` + MaxSize int `json:"MaxSize,omitempty"` // MinSize AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-minsize - MinSize float64 `json:"MinSize,omitempty"` + MinSize int `json:"MinSize,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ses/aws-ses-template_template.go b/cloudformation/ses/aws-ses-template_template.go index 5a9d45adde..a8cda93d35 100644 --- a/cloudformation/ses/aws-ses-template_template.go +++ b/cloudformation/ses/aws-ses-template_template.go @@ -14,7 +14,7 @@ type Template_Template struct { HtmlPart string `json:"HtmlPart,omitempty"` // SubjectPart AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html#cfn-ses-template-template-subjectpart SubjectPart string `json:"SubjectPart,omitempty"` diff --git a/cloudformation/sqs/aws-sqs-queue.go b/cloudformation/sqs/aws-sqs-queue.go index 8689931ad7..a741f5fc5f 100644 --- a/cloudformation/sqs/aws-sqs-queue.go +++ b/cloudformation/sqs/aws-sqs-queue.go @@ -10,82 +10,82 @@ import ( ) // Queue AWS CloudFormation Resource (AWS::SQS::Queue) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html type Queue struct { // ContentBasedDeduplication AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-contentbaseddeduplication + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-contentbaseddeduplication ContentBasedDeduplication bool `json:"ContentBasedDeduplication,omitempty"` // DeduplicationScope AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-deduplicationscope + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-deduplicationscope DeduplicationScope string `json:"DeduplicationScope,omitempty"` // DelaySeconds AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-delayseconds + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-delayseconds DelaySeconds int `json:"DelaySeconds,omitempty"` // FifoQueue AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-fifoqueue + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-fifoqueue FifoQueue bool `json:"FifoQueue,omitempty"` // FifoThroughputLimit AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-fifothroughputlimit + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-fifothroughputlimit FifoThroughputLimit string `json:"FifoThroughputLimit,omitempty"` // KmsDataKeyReusePeriodSeconds AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-kmsdatakeyreuseperiodseconds + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-kmsdatakeyreuseperiodseconds KmsDataKeyReusePeriodSeconds int `json:"KmsDataKeyReusePeriodSeconds,omitempty"` // KmsMasterKeyId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-kmsmasterkeyid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-kmsmasterkeyid KmsMasterKeyId string `json:"KmsMasterKeyId,omitempty"` // MaximumMessageSize AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-maxmesgsize + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-maximummessagesize MaximumMessageSize int `json:"MaximumMessageSize,omitempty"` // MessageRetentionPeriod AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-msgretentionperiod + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-messageretentionperiod MessageRetentionPeriod int `json:"MessageRetentionPeriod,omitempty"` // QueueName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-name + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-queuename QueueName string `json:"QueueName,omitempty"` // ReceiveMessageWaitTimeSeconds AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-receivemsgwaittime + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-receivemessagewaittimeseconds ReceiveMessageWaitTimeSeconds int `json:"ReceiveMessageWaitTimeSeconds,omitempty"` // RedriveAllowPolicy AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-redriveallowpolicy + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-redriveallowpolicy RedriveAllowPolicy interface{} `json:"RedriveAllowPolicy,omitempty"` // RedrivePolicy AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-redrive + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-redrivepolicy RedrivePolicy interface{} `json:"RedrivePolicy,omitempty"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#cfn-sqs-queue-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-tags Tags []tags.Tag `json:"Tags,omitempty"` // VisibilityTimeout AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-visiblitytimeout + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-visibilitytimeout VisibilityTimeout int `json:"VisibilityTimeout,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/schema/cdk.go b/schema/cdk.go index a2cced4e58..1015b72b49 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -10786,6 +10786,9 @@ var CdkSchema = `{ "InstanceConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, "ServiceName": { "type": "string" }, @@ -10898,6 +10901,21 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, "AWS::AppRunner::Service.EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -10998,6 +11016,18 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + } + }, + "required": [ + "EgressConfiguration" + ], + "type": "object" + }, "AWS::AppRunner::Service.SourceCodeVersion": { "additionalProperties": false, "properties": { @@ -11032,6 +11062,86 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::AppStream::AppBlock": { "additionalProperties": false, "properties": { @@ -19410,6 +19520,225 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { @@ -29694,6 +30023,12 @@ var CdkSchema = `{ "ObjectTypeName": { "type": "string" }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -29705,8 +30040,7 @@ var CdkSchema = `{ } }, "required": [ - "DomainName", - "ObjectTypeName" + "DomainName" ], "type": "object" }, @@ -29807,6 +30141,22 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::CustomerProfiles::Integration.S3SourceProperties": { "additionalProperties": false, "properties": { @@ -35279,6 +35629,9 @@ var CdkSchema = `{ "BackupRetentionPeriod": { "type": "number" }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, "DBClusterIdentifier": { "type": "string" }, @@ -35920,6 +36273,9 @@ var CdkSchema = `{ "SSESpecification": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" }, + "TableClass": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42790,18 +43146,30 @@ var CdkSchema = `{ "AvailabilityZone": { "type": "string" }, + "AvailabilityZoneId": { + "type": "string" + }, "CidrBlock": { "type": "string" }, + "EnableDns64": { + "type": "boolean" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6Native": { + "type": "boolean" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, "OutpostArn": { "type": "string" }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42839,6 +43207,21 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { @@ -44409,6 +44792,12 @@ var CdkSchema = `{ "InstanceTenancy": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -44480,9 +44869,21 @@ var CdkSchema = `{ "CidrBlock": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, "Ipv6Pool": { "type": "string" }, @@ -111513,6 +111914,9 @@ var CdkSchema = `{ "type": "string" } }, + "required": [ + "SubjectPart" + ], "type": "object" }, "AWS::SNS::Subscription": { @@ -126874,6 +127278,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::AppRunner::Service" }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, { "$ref": "#/definitions/AWS::AppStream::AppBlock" }, @@ -127051,6 +127458,15 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::CustomResource" }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, { "$ref": "#/definitions/AWS::CloudFormation::Macro" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index f00de23066..839e4a9502 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -10783,6 +10783,9 @@ "InstanceConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, "ServiceName": { "type": "string" }, @@ -10895,6 +10898,21 @@ ], "type": "object" }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, "AWS::AppRunner::Service.EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -10995,6 +11013,18 @@ }, "type": "object" }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + } + }, + "required": [ + "EgressConfiguration" + ], + "type": "object" + }, "AWS::AppRunner::Service.SourceCodeVersion": { "additionalProperties": false, "properties": { @@ -11029,6 +11059,86 @@ }, "type": "object" }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::AppStream::AppBlock": { "additionalProperties": false, "properties": { @@ -19407,6 +19517,225 @@ ], "type": "object" }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { @@ -29691,6 +30020,12 @@ "ObjectTypeName": { "type": "string" }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -29702,8 +30037,7 @@ } }, "required": [ - "DomainName", - "ObjectTypeName" + "DomainName" ], "type": "object" }, @@ -29804,6 +30138,22 @@ ], "type": "object" }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::CustomerProfiles::Integration.S3SourceProperties": { "additionalProperties": false, "properties": { @@ -35276,6 +35626,9 @@ "BackupRetentionPeriod": { "type": "number" }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, "DBClusterIdentifier": { "type": "string" }, @@ -35917,6 +36270,9 @@ "SSESpecification": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" }, + "TableClass": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42787,18 +43143,30 @@ "AvailabilityZone": { "type": "string" }, + "AvailabilityZoneId": { + "type": "string" + }, "CidrBlock": { "type": "string" }, + "EnableDns64": { + "type": "boolean" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6Native": { + "type": "boolean" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, "OutpostArn": { "type": "string" }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42836,6 +43204,21 @@ ], "type": "object" }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { @@ -44406,6 +44789,12 @@ "InstanceTenancy": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -44477,9 +44866,21 @@ "CidrBlock": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, "Ipv6Pool": { "type": "string" }, @@ -111510,6 +111911,9 @@ "type": "string" } }, + "required": [ + "SubjectPart" + ], "type": "object" }, "AWS::SNS::Subscription": { @@ -126871,6 +127275,9 @@ { "$ref": "#/definitions/AWS::AppRunner::Service" }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, { "$ref": "#/definitions/AWS::AppStream::AppBlock" }, @@ -127048,6 +127455,15 @@ { "$ref": "#/definitions/AWS::CloudFormation::CustomResource" }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, { "$ref": "#/definitions/AWS::CloudFormation::Macro" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index a6017e0571..343cb8cd35 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -10786,6 +10786,9 @@ var CloudformationSchema = `{ "InstanceConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, "ServiceName": { "type": "string" }, @@ -10898,6 +10901,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, "AWS::AppRunner::Service.EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -10998,6 +11016,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + } + }, + "required": [ + "EgressConfiguration" + ], + "type": "object" + }, "AWS::AppRunner::Service.SourceCodeVersion": { "additionalProperties": false, "properties": { @@ -11032,6 +11062,86 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::AppStream::AppBlock": { "additionalProperties": false, "properties": { @@ -19352,6 +19462,225 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { @@ -29636,6 +29965,12 @@ var CloudformationSchema = `{ "ObjectTypeName": { "type": "string" }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -29647,8 +29982,7 @@ var CloudformationSchema = `{ } }, "required": [ - "DomainName", - "ObjectTypeName" + "DomainName" ], "type": "object" }, @@ -29749,6 +30083,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::CustomerProfiles::Integration.S3SourceProperties": { "additionalProperties": false, "properties": { @@ -35221,6 +35571,9 @@ var CloudformationSchema = `{ "BackupRetentionPeriod": { "type": "number" }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, "DBClusterIdentifier": { "type": "string" }, @@ -35862,6 +36215,9 @@ var CloudformationSchema = `{ "SSESpecification": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" }, + "TableClass": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42732,18 +43088,30 @@ var CloudformationSchema = `{ "AvailabilityZone": { "type": "string" }, + "AvailabilityZoneId": { + "type": "string" + }, "CidrBlock": { "type": "string" }, + "EnableDns64": { + "type": "boolean" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6Native": { + "type": "boolean" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, "OutpostArn": { "type": "string" }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42781,6 +43149,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { @@ -44351,6 +44734,12 @@ var CloudformationSchema = `{ "InstanceTenancy": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -44422,9 +44811,21 @@ var CloudformationSchema = `{ "CidrBlock": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, "Ipv6Pool": { "type": "string" }, @@ -111455,6 +111856,9 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "SubjectPart" + ], "type": "object" }, "AWS::SNS::Subscription": { @@ -126816,6 +127220,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::AppRunner::Service" }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, { "$ref": "#/definitions/AWS::AppStream::AppBlock" }, @@ -126990,6 +127397,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::CustomResource" }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, { "$ref": "#/definitions/AWS::CloudFormation::Macro" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 065f307e93..6a72f720a9 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -10783,6 +10783,9 @@ "InstanceConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, "ServiceName": { "type": "string" }, @@ -10895,6 +10898,21 @@ ], "type": "object" }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, "AWS::AppRunner::Service.EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -10995,6 +11013,18 @@ }, "type": "object" }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + } + }, + "required": [ + "EgressConfiguration" + ], + "type": "object" + }, "AWS::AppRunner::Service.SourceCodeVersion": { "additionalProperties": false, "properties": { @@ -11029,6 +11059,86 @@ }, "type": "object" }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::AppStream::AppBlock": { "additionalProperties": false, "properties": { @@ -19349,6 +19459,225 @@ ], "type": "object" }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { @@ -29633,6 +29962,12 @@ "ObjectTypeName": { "type": "string" }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -29644,8 +29979,7 @@ } }, "required": [ - "DomainName", - "ObjectTypeName" + "DomainName" ], "type": "object" }, @@ -29746,6 +30080,22 @@ ], "type": "object" }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::CustomerProfiles::Integration.S3SourceProperties": { "additionalProperties": false, "properties": { @@ -35218,6 +35568,9 @@ "BackupRetentionPeriod": { "type": "number" }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, "DBClusterIdentifier": { "type": "string" }, @@ -35859,6 +36212,9 @@ "SSESpecification": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" }, + "TableClass": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42729,18 +43085,30 @@ "AvailabilityZone": { "type": "string" }, + "AvailabilityZoneId": { + "type": "string" + }, "CidrBlock": { "type": "string" }, + "EnableDns64": { + "type": "boolean" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6Native": { + "type": "boolean" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, "OutpostArn": { "type": "string" }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42778,6 +43146,21 @@ ], "type": "object" }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { @@ -44348,6 +44731,12 @@ "InstanceTenancy": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -44419,9 +44808,21 @@ "CidrBlock": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, "Ipv6Pool": { "type": "string" }, @@ -111452,6 +111853,9 @@ "type": "string" } }, + "required": [ + "SubjectPart" + ], "type": "object" }, "AWS::SNS::Subscription": { @@ -126813,6 +127217,9 @@ { "$ref": "#/definitions/AWS::AppRunner::Service" }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, { "$ref": "#/definitions/AWS::AppStream::AppBlock" }, @@ -126987,6 +127394,15 @@ { "$ref": "#/definitions/AWS::CloudFormation::CustomResource" }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, { "$ref": "#/definitions/AWS::CloudFormation::Macro" }, diff --git a/schema/sam.go b/schema/sam.go index fb93bd49d5..38aecab25b 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -10786,6 +10786,9 @@ var SamSchema = `{ "InstanceConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, "ServiceName": { "type": "string" }, @@ -10898,6 +10901,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, "AWS::AppRunner::Service.EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -10998,6 +11016,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + } + }, + "required": [ + "EgressConfiguration" + ], + "type": "object" + }, "AWS::AppRunner::Service.SourceCodeVersion": { "additionalProperties": false, "properties": { @@ -11032,6 +11062,86 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::AppStream::AppBlock": { "additionalProperties": false, "properties": { @@ -19352,6 +19462,225 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { @@ -29636,6 +29965,12 @@ var SamSchema = `{ "ObjectTypeName": { "type": "string" }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -29647,8 +29982,7 @@ var SamSchema = `{ } }, "required": [ - "DomainName", - "ObjectTypeName" + "DomainName" ], "type": "object" }, @@ -29749,6 +30083,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::CustomerProfiles::Integration.S3SourceProperties": { "additionalProperties": false, "properties": { @@ -35221,6 +35571,9 @@ var SamSchema = `{ "BackupRetentionPeriod": { "type": "number" }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, "DBClusterIdentifier": { "type": "string" }, @@ -35862,6 +36215,9 @@ var SamSchema = `{ "SSESpecification": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" }, + "TableClass": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42732,18 +43088,30 @@ var SamSchema = `{ "AvailabilityZone": { "type": "string" }, + "AvailabilityZoneId": { + "type": "string" + }, "CidrBlock": { "type": "string" }, + "EnableDns64": { + "type": "boolean" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6Native": { + "type": "boolean" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, "OutpostArn": { "type": "string" }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42781,6 +43149,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { @@ -44351,6 +44734,12 @@ var SamSchema = `{ "InstanceTenancy": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -44422,9 +44811,21 @@ var SamSchema = `{ "CidrBlock": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, "Ipv6Pool": { "type": "string" }, @@ -111455,6 +111856,9 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "SubjectPart" + ], "type": "object" }, "AWS::SNS::Subscription": { @@ -129494,6 +129898,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::AppRunner::Service" }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, { "$ref": "#/definitions/AWS::AppStream::AppBlock" }, @@ -129668,6 +130075,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::CustomResource" }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, { "$ref": "#/definitions/AWS::CloudFormation::Macro" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 45e1d5ffb3..2c504b9f7b 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -10783,6 +10783,9 @@ "InstanceConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, "ServiceName": { "type": "string" }, @@ -10895,6 +10898,21 @@ ], "type": "object" }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, "AWS::AppRunner::Service.EncryptionConfiguration": { "additionalProperties": false, "properties": { @@ -10995,6 +11013,18 @@ }, "type": "object" }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + } + }, + "required": [ + "EgressConfiguration" + ], + "type": "object" + }, "AWS::AppRunner::Service.SourceCodeVersion": { "additionalProperties": false, "properties": { @@ -11029,6 +11059,86 @@ }, "type": "object" }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::AppStream::AppBlock": { "additionalProperties": false, "properties": { @@ -19349,6 +19459,225 @@ ], "type": "object" }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::Macro": { "additionalProperties": false, "properties": { @@ -29633,6 +29962,12 @@ "ObjectTypeName": { "type": "string" }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -29644,8 +29979,7 @@ } }, "required": [ - "DomainName", - "ObjectTypeName" + "DomainName" ], "type": "object" }, @@ -29746,6 +30080,22 @@ ], "type": "object" }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::CustomerProfiles::Integration.S3SourceProperties": { "additionalProperties": false, "properties": { @@ -35218,6 +35568,9 @@ "BackupRetentionPeriod": { "type": "number" }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, "DBClusterIdentifier": { "type": "string" }, @@ -35859,6 +36212,9 @@ "SSESpecification": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" }, + "TableClass": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42729,18 +43085,30 @@ "AvailabilityZone": { "type": "string" }, + "AvailabilityZoneId": { + "type": "string" + }, "CidrBlock": { "type": "string" }, + "EnableDns64": { + "type": "boolean" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6Native": { + "type": "boolean" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, "OutpostArn": { "type": "string" }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42778,6 +43146,21 @@ ], "type": "object" }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::SubnetCidrBlock": { "additionalProperties": false, "properties": { @@ -44348,6 +44731,12 @@ "InstanceTenancy": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -44419,9 +44808,21 @@ "CidrBlock": { "type": "string" }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, "Ipv6CidrBlock": { "type": "string" }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, "Ipv6Pool": { "type": "string" }, @@ -111452,6 +111853,9 @@ "type": "string" } }, + "required": [ + "SubjectPart" + ], "type": "object" }, "AWS::SNS::Subscription": { @@ -129491,6 +129895,9 @@ { "$ref": "#/definitions/AWS::AppRunner::Service" }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, { "$ref": "#/definitions/AWS::AppStream::AppBlock" }, @@ -129665,6 +130072,15 @@ { "$ref": "#/definitions/AWS::CloudFormation::CustomResource" }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, { "$ref": "#/definitions/AWS::CloudFormation::Macro" },