From dcee61222d00afa083519ecfe5cb60bd07b8b0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Fonseca?= Date: Fri, 17 Jun 2022 00:12:05 +0000 Subject: [PATCH] fix(schema): CloudFormation Updates --- cloudformation/all.go | 25 +++ .../appstream/aws-appstream-stack.go | 5 + ...tream-stack_streamingexperiencesettings.go | 37 ++++ .../config/aws-config-configrule_source.go | 4 +- cloudformation/ec2/aws-ec2-eip.go | 5 + .../ec2/aws-ec2-instance_networkinterface.go | 5 + cloudformation/ec2/aws-ec2-vpngateway.go | 10 +- ...rch-domain_advancedsecurityoptionsinput.go | 5 + cloudformation/emr/aws-emr-cluster.go | 5 + .../aws-emr-cluster_autoterminationpolicy.go | 37 ++++ .../aws-emr-cluster_jobflowinstancesconfig.go | 10 + ...isanalyticsv2-application_propertygroup.go | 2 +- ...icsv2-application_s3contentbaselocation.go | 4 +- ...alyticsv2-application_s3contentlocation.go | 8 +- cloudformation/lambda/aws-lambda-url.go | 5 + cloudformation/rds/aws-rds-dbsubnetgroup.go | 10 +- .../route53/aws-route53-cidrcollection.go | 124 +++++++++++ .../aws-route53-cidrcollection_location.go | 42 ++++ .../route53/aws-route53-recordset.go | 5 + ...aws-route53-recordset_cidrroutingconfig.go | 42 ++++ ...oute53-recordsetgroup_cidrroutingconfig.go | 42 ++++ .../aws-route53-recordsetgroup_recordset.go | 5 + .../aws-s3-multiregionaccesspoint_region.go | 5 + schema/cdk.go | 196 +++++++++++++++++- schema/cdk.schema.json | 196 +++++++++++++++++- schema/cloudformation.go | 196 +++++++++++++++++- schema/cloudformation.schema.json | 196 +++++++++++++++++- schema/sam.go | 196 +++++++++++++++++- schema/sam.schema.json | 196 +++++++++++++++++- 29 files changed, 1581 insertions(+), 37 deletions(-) create mode 100644 cloudformation/appstream/aws-appstream-stack_streamingexperiencesettings.go create mode 100644 cloudformation/emr/aws-emr-cluster_autoterminationpolicy.go create mode 100644 cloudformation/route53/aws-route53-cidrcollection.go create mode 100644 cloudformation/route53/aws-route53-cidrcollection_location.go create mode 100644 cloudformation/route53/aws-route53-recordset_cidrroutingconfig.go create mode 100644 cloudformation/route53/aws-route53-recordsetgroup_cidrroutingconfig.go diff --git a/cloudformation/all.go b/cloudformation/all.go index 59b3b8842f..08ae92fd75 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -964,6 +964,7 @@ func AllResources() map[string]Resource { "AWS::RoboMaker::RobotApplicationVersion": &robomaker.RobotApplicationVersion{}, "AWS::RoboMaker::SimulationApplication": &robomaker.SimulationApplication{}, "AWS::RoboMaker::SimulationApplicationVersion": &robomaker.SimulationApplicationVersion{}, + "AWS::Route53::CidrCollection": &route53.CidrCollection{}, "AWS::Route53::DNSSEC": &route53.DNSSEC{}, "AWS::Route53::HealthCheck": &route53.HealthCheck{}, "AWS::Route53::HostedZone": &route53.HostedZone{}, @@ -19405,6 +19406,30 @@ func (t *Template) GetRoboMakerSimulationApplicationVersionWithName(name string) return nil, fmt.Errorf("resource %q of type robomaker.SimulationApplicationVersion not found", name) } +// GetAllRoute53CidrCollectionResources retrieves all route53.CidrCollection items from an AWS CloudFormation template +func (t *Template) GetAllRoute53CidrCollectionResources() map[string]*route53.CidrCollection { + results := map[string]*route53.CidrCollection{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *route53.CidrCollection: + results[name] = resource + } + } + return results +} + +// GetRoute53CidrCollectionWithName retrieves all route53.CidrCollection items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRoute53CidrCollectionWithName(name string) (*route53.CidrCollection, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *route53.CidrCollection: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type route53.CidrCollection not found", name) +} + // GetAllRoute53DNSSECResources retrieves all route53.DNSSEC items from an AWS CloudFormation template func (t *Template) GetAllRoute53DNSSECResources() map[string]*route53.DNSSEC { results := map[string]*route53.DNSSEC{} diff --git a/cloudformation/appstream/aws-appstream-stack.go b/cloudformation/appstream/aws-appstream-stack.go index d789132001..244e1c9fcc 100644 --- a/cloudformation/appstream/aws-appstream-stack.go +++ b/cloudformation/appstream/aws-appstream-stack.go @@ -70,6 +70,11 @@ type Stack struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-storageconnectors StorageConnectors *[]Stack_StorageConnector `json:"StorageConnectors,omitempty"` + // StreamingExperienceSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-streamingexperiencesettings + StreamingExperienceSettings *Stack_StreamingExperienceSettings `json:"StreamingExperienceSettings,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-tags diff --git a/cloudformation/appstream/aws-appstream-stack_streamingexperiencesettings.go b/cloudformation/appstream/aws-appstream-stack_streamingexperiencesettings.go new file mode 100644 index 0000000000..0d891258aa --- /dev/null +++ b/cloudformation/appstream/aws-appstream-stack_streamingexperiencesettings.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package appstream + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Stack_StreamingExperienceSettings AWS CloudFormation Resource (AWS::AppStream::Stack.StreamingExperienceSettings) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-streamingexperiencesettings.html +type Stack_StreamingExperienceSettings struct { + + // PreferredProtocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-streamingexperiencesettings.html#cfn-appstream-stack-streamingexperiencesettings-preferredprotocol + PreferredProtocol *string `json:"PreferredProtocol,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 *Stack_StreamingExperienceSettings) AWSCloudFormationType() string { + return "AWS::AppStream::Stack.StreamingExperienceSettings" +} diff --git a/cloudformation/config/aws-config-configrule_source.go b/cloudformation/config/aws-config-configrule_source.go index ee193c8bc9..f5df53c7d3 100644 --- a/cloudformation/config/aws-config-configrule_source.go +++ b/cloudformation/config/aws-config-configrule_source.go @@ -21,9 +21,9 @@ type ConfigRule_Source struct { SourceDetails *[]ConfigRule_SourceDetail `json:"SourceDetails,omitempty"` // SourceIdentifier AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-sourceidentifier - SourceIdentifier string `json:"SourceIdentifier"` + SourceIdentifier *string `json:"SourceIdentifier,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ec2/aws-ec2-eip.go b/cloudformation/ec2/aws-ec2-eip.go index 27cbd10628..755acceb45 100644 --- a/cloudformation/ec2/aws-ec2-eip.go +++ b/cloudformation/ec2/aws-ec2-eip.go @@ -25,6 +25,11 @@ type EIP struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-instanceid InstanceId *string `json:"InstanceId,omitempty"` + // NetworkBorderGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-networkbordergroup + NetworkBorderGroup *string `json:"NetworkBorderGroup,omitempty"` + // PublicIpv4Pool AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-publicipv4pool diff --git a/cloudformation/ec2/aws-ec2-instance_networkinterface.go b/cloudformation/ec2/aws-ec2-instance_networkinterface.go index 7ff35d463a..26b9cc4ec6 100644 --- a/cloudformation/ec2/aws-ec2-instance_networkinterface.go +++ b/cloudformation/ec2/aws-ec2-instance_networkinterface.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html type Instance_NetworkInterface struct { + // AssociateCarrierIpAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#cfn-ec2-instance-networkinterface-associatecarrieripaddress + AssociateCarrierIpAddress *bool `json:"AssociateCarrierIpAddress,omitempty"` + // AssociatePublicIpAddress AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-associatepubip diff --git a/cloudformation/ec2/aws-ec2-vpngateway.go b/cloudformation/ec2/aws-ec2-vpngateway.go index be3f7a7ebe..5ccade9c5d 100644 --- a/cloudformation/ec2/aws-ec2-vpngateway.go +++ b/cloudformation/ec2/aws-ec2-vpngateway.go @@ -12,22 +12,22 @@ import ( ) // VPNGateway AWS CloudFormation Resource (AWS::EC2::VPNGateway) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html type VPNGateway struct { // AmazonSideAsn AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-amazonsideasn - AmazonSideAsn *int64 `json:"AmazonSideAsn,omitempty"` + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html#cfn-ec2-vpngateway-amazonsideasn + AmazonSideAsn *int `json:"AmazonSideAsn,omitempty"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html#cfn-ec2-vpngateway-tags Tags *[]tags.Tag `json:"Tags,omitempty"` // Type AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-type + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html#cfn-ec2-vpngateway-type Type string `json:"Type"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go b/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go index 2dc5af2b03..64714e8373 100644 --- a/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go +++ b/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html type Domain_AdvancedSecurityOptionsInput struct { + // AnonymousAuthEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-anonymousauthenabled + AnonymousAuthEnabled *bool `json:"AnonymousAuthEnabled,omitempty"` + // Enabled AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-enabled diff --git a/cloudformation/emr/aws-emr-cluster.go b/cloudformation/emr/aws-emr-cluster.go index 922f78a6c1..f74b17aa3e 100644 --- a/cloudformation/emr/aws-emr-cluster.go +++ b/cloudformation/emr/aws-emr-cluster.go @@ -30,6 +30,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-autoscalingrole AutoScalingRole *string `json:"AutoScalingRole,omitempty"` + // AutoTerminationPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-autoterminationpolicy + AutoTerminationPolicy *Cluster_AutoTerminationPolicy `json:"AutoTerminationPolicy,omitempty"` + // BootstrapActions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-bootstrapactions diff --git a/cloudformation/emr/aws-emr-cluster_autoterminationpolicy.go b/cloudformation/emr/aws-emr-cluster_autoterminationpolicy.go new file mode 100644 index 0000000000..68067ce28a --- /dev/null +++ b/cloudformation/emr/aws-emr-cluster_autoterminationpolicy.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package emr + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Cluster_AutoTerminationPolicy AWS CloudFormation Resource (AWS::EMR::Cluster.AutoTerminationPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoterminationpolicy.html +type Cluster_AutoTerminationPolicy struct { + + // IdleTimeout AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoterminationpolicy.html#cfn-elasticmapreduce-cluster-autoterminationpolicy-idletimeout + IdleTimeout *int64 `json:"IdleTimeout,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 *Cluster_AutoTerminationPolicy) AWSCloudFormationType() string { + return "AWS::EMR::Cluster.AutoTerminationPolicy" +} diff --git a/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go b/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go index 1de20f2670..0df94c940c 100644 --- a/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go +++ b/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go @@ -85,6 +85,16 @@ type Cluster_JobFlowInstancesConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-serviceaccesssecuritygroup ServiceAccessSecurityGroup *string `json:"ServiceAccessSecurityGroup,omitempty"` + // TaskInstanceFleets AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-taskinstancefleets + TaskInstanceFleets *[]Cluster_InstanceFleetConfig `json:"TaskInstanceFleets,omitempty"` + + // TaskInstanceGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-taskinstancegroups + TaskInstanceGroups *[]Cluster_InstanceGroupConfig `json:"TaskInstanceGroups,omitempty"` + // TerminationProtected AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-terminationprotected diff --git a/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go b/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go index 00765e5d81..3ce088bd19 100644 --- a/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go +++ b/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go @@ -18,7 +18,7 @@ type Application_PropertyGroup struct { // PropertyMap AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertymap - PropertyMap *interface{} `json:"PropertyMap,omitempty"` + PropertyMap *map[string]string `json:"PropertyMap,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go b/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go index 2d108bd1b1..e2dd807f91 100644 --- a/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go +++ b/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go @@ -11,9 +11,9 @@ import ( type Application_S3ContentBaseLocation struct { // BasePath AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentbaselocation.html#cfn-kinesisanalyticsv2-application-s3contentbaselocation-basepath - BasePath string `json:"BasePath"` + BasePath *string `json:"BasePath,omitempty"` // BucketARN AWS CloudFormation Property // Required: true diff --git a/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go b/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go index 52fa88e13b..390211e9be 100644 --- a/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go +++ b/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go @@ -11,14 +11,14 @@ import ( type Application_S3ContentLocation struct { // BucketARN AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-bucketarn - BucketARN *string `json:"BucketARN,omitempty"` + BucketARN string `json:"BucketARN"` // FileKey AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-filekey - FileKey *string `json:"FileKey,omitempty"` + FileKey string `json:"FileKey"` // ObjectVersion AWS CloudFormation Property // Required: false diff --git a/cloudformation/lambda/aws-lambda-url.go b/cloudformation/lambda/aws-lambda-url.go index 74d46bcad1..b8aaca2bfd 100644 --- a/cloudformation/lambda/aws-lambda-url.go +++ b/cloudformation/lambda/aws-lambda-url.go @@ -24,6 +24,11 @@ type Url struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-cors Cors *Url_Cors `json:"Cors,omitempty"` + // InvokeMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-invokemode + InvokeMode *string `json:"InvokeMode,omitempty"` + // Qualifier AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-qualifier diff --git a/cloudformation/rds/aws-rds-dbsubnetgroup.go b/cloudformation/rds/aws-rds-dbsubnetgroup.go index 7960c976f8..d547cbd405 100644 --- a/cloudformation/rds/aws-rds-dbsubnetgroup.go +++ b/cloudformation/rds/aws-rds-dbsubnetgroup.go @@ -12,27 +12,27 @@ import ( ) // DBSubnetGroup AWS CloudFormation Resource (AWS::RDS::DBSubnetGroup) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html type DBSubnetGroup struct { // DBSubnetGroupDescription AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-dbsubnetgroupdescription + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html#cfn-rds-dbsubnetgroup-dbsubnetgroupdescription DBSubnetGroupDescription string `json:"DBSubnetGroupDescription"` // DBSubnetGroupName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-dbsubnetgroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html#cfn-rds-dbsubnetgroup-dbsubnetgroupname DBSubnetGroupName *string `json:"DBSubnetGroupName,omitempty"` // SubnetIds AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-subnetids + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html#cfn-rds-dbsubnetgroup-subnetids SubnetIds []string `json:"SubnetIds"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html#cfn-rds-dbsubnetgroup-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnetgroup.html#cfn-rds-dbsubnetgroup-tags Tags *[]tags.Tag `json:"Tags,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/route53/aws-route53-cidrcollection.go b/cloudformation/route53/aws-route53-cidrcollection.go new file mode 100644 index 0000000000..b4ec18ce74 --- /dev/null +++ b/cloudformation/route53/aws-route53-cidrcollection.go @@ -0,0 +1,124 @@ +// Code generated by "go generate". Please don't change this file directly. + +package route53 + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// CidrCollection AWS CloudFormation Resource (AWS::Route53::CidrCollection) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html +type CidrCollection struct { + + // Locations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html#cfn-route53-cidrcollection-locations + Locations *[]CidrCollection_Location `json:"Locations,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html#cfn-route53-cidrcollection-name + Name string `json:"Name"` + + // 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 *CidrCollection) AWSCloudFormationType() string { + return "AWS::Route53::CidrCollection" +} + +// 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 CidrCollection) MarshalJSON() ([]byte, error) { + type Properties CidrCollection + 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 *CidrCollection) UnmarshalJSON(b []byte) error { + type Properties CidrCollection + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = CidrCollection(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/route53/aws-route53-cidrcollection_location.go b/cloudformation/route53/aws-route53-cidrcollection_location.go new file mode 100644 index 0000000000..0c4671bafb --- /dev/null +++ b/cloudformation/route53/aws-route53-cidrcollection_location.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package route53 + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// CidrCollection_Location AWS CloudFormation Resource (AWS::Route53::CidrCollection.Location) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrcollection-location.html +type CidrCollection_Location struct { + + // CidrList AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrcollection-location.html#cfn-route53-cidrcollection-location-cidrlist + CidrList []string `json:"CidrList"` + + // LocationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrcollection-location.html#cfn-route53-cidrcollection-location-locationname + LocationName string `json:"LocationName"` + + // 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 *CidrCollection_Location) AWSCloudFormationType() string { + return "AWS::Route53::CidrCollection.Location" +} diff --git a/cloudformation/route53/aws-route53-recordset.go b/cloudformation/route53/aws-route53-recordset.go index 568929ff44..f6d1930810 100644 --- a/cloudformation/route53/aws-route53-recordset.go +++ b/cloudformation/route53/aws-route53-recordset.go @@ -19,6 +19,11 @@ type RecordSet struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-aliastarget AliasTarget *RecordSet_AliasTarget `json:"AliasTarget,omitempty"` + // CidrRoutingConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-cidrroutingconfig + CidrRoutingConfig *RecordSet_CidrRoutingConfig `json:"CidrRoutingConfig,omitempty"` + // Comment AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-comment diff --git a/cloudformation/route53/aws-route53-recordset_cidrroutingconfig.go b/cloudformation/route53/aws-route53-recordset_cidrroutingconfig.go new file mode 100644 index 0000000000..95d525c804 --- /dev/null +++ b/cloudformation/route53/aws-route53-recordset_cidrroutingconfig.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package route53 + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// RecordSet_CidrRoutingConfig AWS CloudFormation Resource (AWS::Route53::RecordSet.CidrRoutingConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrroutingconfig.html +type RecordSet_CidrRoutingConfig struct { + + // CollectionId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrroutingconfig.html#cfn-route53-cidrroutingconfig-collectionid + CollectionId string `json:"CollectionId"` + + // LocationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrroutingconfig.html#cfn-route53-cidrroutingconfig-locationname + LocationName string `json:"LocationName"` + + // 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 *RecordSet_CidrRoutingConfig) AWSCloudFormationType() string { + return "AWS::Route53::RecordSet.CidrRoutingConfig" +} diff --git a/cloudformation/route53/aws-route53-recordsetgroup_cidrroutingconfig.go b/cloudformation/route53/aws-route53-recordsetgroup_cidrroutingconfig.go new file mode 100644 index 0000000000..b319b87480 --- /dev/null +++ b/cloudformation/route53/aws-route53-recordsetgroup_cidrroutingconfig.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package route53 + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// RecordSetGroup_CidrRoutingConfig AWS CloudFormation Resource (AWS::Route53::RecordSetGroup.CidrRoutingConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrroutingconfig.html +type RecordSetGroup_CidrRoutingConfig struct { + + // CollectionId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrroutingconfig.html#cfn-route53-cidrroutingconfig-collectionid + CollectionId string `json:"CollectionId"` + + // LocationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrroutingconfig.html#cfn-route53-cidrroutingconfig-locationname + LocationName string `json:"LocationName"` + + // 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 *RecordSetGroup_CidrRoutingConfig) AWSCloudFormationType() string { + return "AWS::Route53::RecordSetGroup.CidrRoutingConfig" +} diff --git a/cloudformation/route53/aws-route53-recordsetgroup_recordset.go b/cloudformation/route53/aws-route53-recordsetgroup_recordset.go index f45a41abf6..794399fdb2 100644 --- a/cloudformation/route53/aws-route53-recordsetgroup_recordset.go +++ b/cloudformation/route53/aws-route53-recordsetgroup_recordset.go @@ -15,6 +15,11 @@ type RecordSetGroup_RecordSet struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-aliastarget AliasTarget *RecordSetGroup_AliasTarget `json:"AliasTarget,omitempty"` + // CidrRoutingConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-cidrroutingconfig + CidrRoutingConfig *RecordSetGroup_CidrRoutingConfig `json:"CidrRoutingConfig,omitempty"` + // Failover AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-failover diff --git a/cloudformation/s3/aws-s3-multiregionaccesspoint_region.go b/cloudformation/s3/aws-s3-multiregionaccesspoint_region.go index 873e2b3c92..268717b40d 100644 --- a/cloudformation/s3/aws-s3-multiregionaccesspoint_region.go +++ b/cloudformation/s3/aws-s3-multiregionaccesspoint_region.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html type MultiRegionAccessPoint_Region struct { + // AccountId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html#cfn-s3-multiregionaccesspoint-region-accountid + AccountId *string `json:"AccountId,omitempty"` + // Bucket AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html#cfn-s3-multiregionaccesspoint-region-bucket diff --git a/schema/cdk.go b/schema/cdk.go index d8dde793fb..07c6ca5e4f 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -12707,6 +12707,9 @@ var CdkSchema = `{ }, "type": "array" }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -12794,6 +12797,15 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { @@ -29959,8 +29971,7 @@ var CdkSchema = `{ } }, "required": [ - "Owner", - "SourceIdentifier" + "Owner" ], "type": "object" }, @@ -40721,6 +40732,9 @@ var CdkSchema = `{ "InstanceId": { "type": "string" }, + "NetworkBorderGroup": { + "type": "string" + }, "PublicIpv4Pool": { "type": "string" }, @@ -41952,6 +41966,9 @@ var CdkSchema = `{ "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -52170,6 +52187,9 @@ var CdkSchema = `{ "AutoScalingRole": { "type": "string" }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, "BootstrapActions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" @@ -52315,6 +52335,15 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.BootstrapActionConfig": { "additionalProperties": false, "properties": { @@ -52646,6 +52675,18 @@ var CdkSchema = `{ "ServiceAccessSecurityGroup": { "type": "string" }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, "TerminationProtected": { "type": "boolean" } @@ -57281,6 +57322,9 @@ var CdkSchema = `{ "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { "type": "boolean" }, @@ -84696,6 +84740,12 @@ var CdkSchema = `{ "type": "string" }, "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -84746,7 +84796,6 @@ var CdkSchema = `{ } }, "required": [ - "BasePath", "BucketARN" ], "type": "object" @@ -84764,6 +84813,10 @@ var CdkSchema = `{ "type": "string" } }, + "required": [ + "BucketARN", + "FileKey" + ], "type": "object" }, "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { @@ -87722,6 +87775,9 @@ var CdkSchema = `{ "Cors": { "$ref": "#/definitions/AWS::Lambda::Url.Cors" }, + "InvokeMode": { + "type": "string" + }, "Qualifier": { "type": "string" }, @@ -115491,6 +115547,96 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Route53::CidrCollection": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::DNSSEC": { "additionalProperties": false, "properties": { @@ -115890,6 +116036,9 @@ var CdkSchema = `{ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, "Comment": { "type": "string" }, @@ -115982,6 +116131,22 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSet.GeoLocation": { "additionalProperties": false, "properties": { @@ -116089,6 +116254,22 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSetGroup.GeoLocation": { "additionalProperties": false, "properties": { @@ -116110,6 +116291,9 @@ var CdkSchema = `{ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, "Failover": { "type": "string" }, @@ -119121,6 +119305,9 @@ var CdkSchema = `{ "AWS::S3::MultiRegionAccessPoint.Region": { "additionalProperties": false, "properties": { + "AccountId": { + "type": "string" + }, "Bucket": { "type": "string" } @@ -139985,6 +140172,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, { "$ref": "#/definitions/AWS::Route53::DNSSEC" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 533732c7de..72e3917b20 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -12702,6 +12702,9 @@ }, "type": "array" }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -12789,6 +12792,15 @@ ], "type": "object" }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { @@ -29954,8 +29966,7 @@ } }, "required": [ - "Owner", - "SourceIdentifier" + "Owner" ], "type": "object" }, @@ -40716,6 +40727,9 @@ "InstanceId": { "type": "string" }, + "NetworkBorderGroup": { + "type": "string" + }, "PublicIpv4Pool": { "type": "string" }, @@ -41947,6 +41961,9 @@ "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -52165,6 +52182,9 @@ "AutoScalingRole": { "type": "string" }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, "BootstrapActions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" @@ -52310,6 +52330,15 @@ ], "type": "object" }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.BootstrapActionConfig": { "additionalProperties": false, "properties": { @@ -52641,6 +52670,18 @@ "ServiceAccessSecurityGroup": { "type": "string" }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, "TerminationProtected": { "type": "boolean" } @@ -57276,6 +57317,9 @@ "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { "type": "boolean" }, @@ -84691,6 +84735,12 @@ "type": "string" }, "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -84741,7 +84791,6 @@ } }, "required": [ - "BasePath", "BucketARN" ], "type": "object" @@ -84759,6 +84808,10 @@ "type": "string" } }, + "required": [ + "BucketARN", + "FileKey" + ], "type": "object" }, "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { @@ -87717,6 +87770,9 @@ "Cors": { "$ref": "#/definitions/AWS::Lambda::Url.Cors" }, + "InvokeMode": { + "type": "string" + }, "Qualifier": { "type": "string" }, @@ -115486,6 +115542,96 @@ ], "type": "object" }, + "AWS::Route53::CidrCollection": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::DNSSEC": { "additionalProperties": false, "properties": { @@ -115885,6 +116031,9 @@ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, "Comment": { "type": "string" }, @@ -115977,6 +116126,22 @@ ], "type": "object" }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSet.GeoLocation": { "additionalProperties": false, "properties": { @@ -116084,6 +116249,22 @@ ], "type": "object" }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSetGroup.GeoLocation": { "additionalProperties": false, "properties": { @@ -116105,6 +116286,9 @@ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, "Failover": { "type": "string" }, @@ -119116,6 +119300,9 @@ "AWS::S3::MultiRegionAccessPoint.Region": { "additionalProperties": false, "properties": { + "AccountId": { + "type": "string" + }, "Bucket": { "type": "string" } @@ -139980,6 +140167,9 @@ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, { "$ref": "#/definitions/AWS::Route53::DNSSEC" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index ae68a286cf..398502d279 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -12707,6 +12707,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -12794,6 +12797,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { @@ -29898,8 +29910,7 @@ var CloudformationSchema = `{ } }, "required": [ - "Owner", - "SourceIdentifier" + "Owner" ], "type": "object" }, @@ -40660,6 +40671,9 @@ var CloudformationSchema = `{ "InstanceId": { "type": "string" }, + "NetworkBorderGroup": { + "type": "string" + }, "PublicIpv4Pool": { "type": "string" }, @@ -41891,6 +41905,9 @@ var CloudformationSchema = `{ "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -52109,6 +52126,9 @@ var CloudformationSchema = `{ "AutoScalingRole": { "type": "string" }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, "BootstrapActions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" @@ -52254,6 +52274,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.BootstrapActionConfig": { "additionalProperties": false, "properties": { @@ -52585,6 +52614,18 @@ var CloudformationSchema = `{ "ServiceAccessSecurityGroup": { "type": "string" }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, "TerminationProtected": { "type": "boolean" } @@ -57220,6 +57261,9 @@ var CloudformationSchema = `{ "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { "type": "boolean" }, @@ -84635,6 +84679,12 @@ var CloudformationSchema = `{ "type": "string" }, "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -84685,7 +84735,6 @@ var CloudformationSchema = `{ } }, "required": [ - "BasePath", "BucketARN" ], "type": "object" @@ -84703,6 +84752,10 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "BucketARN", + "FileKey" + ], "type": "object" }, "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { @@ -87661,6 +87714,9 @@ var CloudformationSchema = `{ "Cors": { "$ref": "#/definitions/AWS::Lambda::Url.Cors" }, + "InvokeMode": { + "type": "string" + }, "Qualifier": { "type": "string" }, @@ -115430,6 +115486,96 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Route53::CidrCollection": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::DNSSEC": { "additionalProperties": false, "properties": { @@ -115829,6 +115975,9 @@ var CloudformationSchema = `{ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, "Comment": { "type": "string" }, @@ -115921,6 +116070,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSet.GeoLocation": { "additionalProperties": false, "properties": { @@ -116028,6 +116193,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSetGroup.GeoLocation": { "additionalProperties": false, "properties": { @@ -116049,6 +116230,9 @@ var CloudformationSchema = `{ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, "Failover": { "type": "string" }, @@ -119060,6 +119244,9 @@ var CloudformationSchema = `{ "AWS::S3::MultiRegionAccessPoint.Region": { "additionalProperties": false, "properties": { + "AccountId": { + "type": "string" + }, "Bucket": { "type": "string" } @@ -139921,6 +140108,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, { "$ref": "#/definitions/AWS::Route53::DNSSEC" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 88207c7aec..aadf4b29b9 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -12702,6 +12702,9 @@ }, "type": "array" }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -12789,6 +12792,15 @@ ], "type": "object" }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { @@ -29893,8 +29905,7 @@ } }, "required": [ - "Owner", - "SourceIdentifier" + "Owner" ], "type": "object" }, @@ -40655,6 +40666,9 @@ "InstanceId": { "type": "string" }, + "NetworkBorderGroup": { + "type": "string" + }, "PublicIpv4Pool": { "type": "string" }, @@ -41886,6 +41900,9 @@ "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -52104,6 +52121,9 @@ "AutoScalingRole": { "type": "string" }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, "BootstrapActions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" @@ -52249,6 +52269,15 @@ ], "type": "object" }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.BootstrapActionConfig": { "additionalProperties": false, "properties": { @@ -52580,6 +52609,18 @@ "ServiceAccessSecurityGroup": { "type": "string" }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, "TerminationProtected": { "type": "boolean" } @@ -57215,6 +57256,9 @@ "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { "type": "boolean" }, @@ -84630,6 +84674,12 @@ "type": "string" }, "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -84680,7 +84730,6 @@ } }, "required": [ - "BasePath", "BucketARN" ], "type": "object" @@ -84698,6 +84747,10 @@ "type": "string" } }, + "required": [ + "BucketARN", + "FileKey" + ], "type": "object" }, "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { @@ -87656,6 +87709,9 @@ "Cors": { "$ref": "#/definitions/AWS::Lambda::Url.Cors" }, + "InvokeMode": { + "type": "string" + }, "Qualifier": { "type": "string" }, @@ -115425,6 +115481,96 @@ ], "type": "object" }, + "AWS::Route53::CidrCollection": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::DNSSEC": { "additionalProperties": false, "properties": { @@ -115824,6 +115970,9 @@ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, "Comment": { "type": "string" }, @@ -115916,6 +116065,22 @@ ], "type": "object" }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSet.GeoLocation": { "additionalProperties": false, "properties": { @@ -116023,6 +116188,22 @@ ], "type": "object" }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSetGroup.GeoLocation": { "additionalProperties": false, "properties": { @@ -116044,6 +116225,9 @@ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, "Failover": { "type": "string" }, @@ -119055,6 +119239,9 @@ "AWS::S3::MultiRegionAccessPoint.Region": { "additionalProperties": false, "properties": { + "AccountId": { + "type": "string" + }, "Bucket": { "type": "string" } @@ -139916,6 +140103,9 @@ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, { "$ref": "#/definitions/AWS::Route53::DNSSEC" }, diff --git a/schema/sam.go b/schema/sam.go index 7a64fe744d..999033b496 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -12707,6 +12707,9 @@ var SamSchema = `{ }, "type": "array" }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -12794,6 +12797,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { @@ -29898,8 +29910,7 @@ var SamSchema = `{ } }, "required": [ - "Owner", - "SourceIdentifier" + "Owner" ], "type": "object" }, @@ -40660,6 +40671,9 @@ var SamSchema = `{ "InstanceId": { "type": "string" }, + "NetworkBorderGroup": { + "type": "string" + }, "PublicIpv4Pool": { "type": "string" }, @@ -41891,6 +41905,9 @@ var SamSchema = `{ "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -52109,6 +52126,9 @@ var SamSchema = `{ "AutoScalingRole": { "type": "string" }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, "BootstrapActions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" @@ -52254,6 +52274,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.BootstrapActionConfig": { "additionalProperties": false, "properties": { @@ -52585,6 +52614,18 @@ var SamSchema = `{ "ServiceAccessSecurityGroup": { "type": "string" }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, "TerminationProtected": { "type": "boolean" } @@ -57220,6 +57261,9 @@ var SamSchema = `{ "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { "type": "boolean" }, @@ -84635,6 +84679,12 @@ var SamSchema = `{ "type": "string" }, "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -84685,7 +84735,6 @@ var SamSchema = `{ } }, "required": [ - "BasePath", "BucketARN" ], "type": "object" @@ -84703,6 +84752,10 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "BucketARN", + "FileKey" + ], "type": "object" }, "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { @@ -87661,6 +87714,9 @@ var SamSchema = `{ "Cors": { "$ref": "#/definitions/AWS::Lambda::Url.Cors" }, + "InvokeMode": { + "type": "string" + }, "Qualifier": { "type": "string" }, @@ -115430,6 +115486,96 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Route53::CidrCollection": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::DNSSEC": { "additionalProperties": false, "properties": { @@ -115829,6 +115975,9 @@ var SamSchema = `{ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, "Comment": { "type": "string" }, @@ -115921,6 +116070,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSet.GeoLocation": { "additionalProperties": false, "properties": { @@ -116028,6 +116193,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSetGroup.GeoLocation": { "additionalProperties": false, "properties": { @@ -116049,6 +116230,9 @@ var SamSchema = `{ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, "Failover": { "type": "string" }, @@ -119060,6 +119244,9 @@ var SamSchema = `{ "AWS::S3::MultiRegionAccessPoint.Region": { "additionalProperties": false, "properties": { + "AccountId": { + "type": "string" + }, "Bucket": { "type": "string" } @@ -142802,6 +142989,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, { "$ref": "#/definitions/AWS::Route53::DNSSEC" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 6a486ee323..fbec2dc991 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -12702,6 +12702,9 @@ }, "type": "array" }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -12789,6 +12792,15 @@ ], "type": "object" }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppStream::Stack.UserSetting": { "additionalProperties": false, "properties": { @@ -29893,8 +29905,7 @@ } }, "required": [ - "Owner", - "SourceIdentifier" + "Owner" ], "type": "object" }, @@ -40655,6 +40666,9 @@ "InstanceId": { "type": "string" }, + "NetworkBorderGroup": { + "type": "string" + }, "PublicIpv4Pool": { "type": "string" }, @@ -41886,6 +41900,9 @@ "AWS::EC2::Instance.NetworkInterface": { "additionalProperties": false, "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, "AssociatePublicIpAddress": { "type": "boolean" }, @@ -52104,6 +52121,9 @@ "AutoScalingRole": { "type": "string" }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, "BootstrapActions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" @@ -52249,6 +52269,15 @@ ], "type": "object" }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.BootstrapActionConfig": { "additionalProperties": false, "properties": { @@ -52580,6 +52609,18 @@ "ServiceAccessSecurityGroup": { "type": "string" }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, "TerminationProtected": { "type": "boolean" } @@ -57215,6 +57256,9 @@ "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { "type": "boolean" }, @@ -84630,6 +84674,12 @@ "type": "string" }, "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -84680,7 +84730,6 @@ } }, "required": [ - "BasePath", "BucketARN" ], "type": "object" @@ -84698,6 +84747,10 @@ "type": "string" } }, + "required": [ + "BucketARN", + "FileKey" + ], "type": "object" }, "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { @@ -87656,6 +87709,9 @@ "Cors": { "$ref": "#/definitions/AWS::Lambda::Url.Cors" }, + "InvokeMode": { + "type": "string" + }, "Qualifier": { "type": "string" }, @@ -115425,6 +115481,96 @@ ], "type": "object" }, + "AWS::Route53::CidrCollection": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::DNSSEC": { "additionalProperties": false, "properties": { @@ -115824,6 +115970,9 @@ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, "Comment": { "type": "string" }, @@ -115916,6 +116065,22 @@ ], "type": "object" }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSet.GeoLocation": { "additionalProperties": false, "properties": { @@ -116023,6 +116188,22 @@ ], "type": "object" }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, "AWS::Route53::RecordSetGroup.GeoLocation": { "additionalProperties": false, "properties": { @@ -116044,6 +116225,9 @@ "AliasTarget": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, "Failover": { "type": "string" }, @@ -119055,6 +119239,9 @@ "AWS::S3::MultiRegionAccessPoint.Region": { "additionalProperties": false, "properties": { + "AccountId": { + "type": "string" + }, "Bucket": { "type": "string" } @@ -142797,6 +142984,9 @@ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, { "$ref": "#/definitions/AWS::Route53::DNSSEC" },