From 763f8267a7504fc551702a456f1b19f988e4cb17 Mon Sep 17 00:00:00 2001 From: Paul Maddox Date: Fri, 24 Sep 2021 00:06:22 +0000 Subject: [PATCH] fix(schema): CloudFormation Updates --- .../acmpca/aws-acmpca-permission.go | 121 ++ cloudformation/all.go | 254 +++ .../appsync/aws-appsync-datasource.go | 5 + ...sync-datasource_opensearchserviceconfig.go | 40 + cloudformation/aps/aws-aps-workspace.go | 112 + .../backup/aws-backup-backupvault.go | 5 + ...ackup-backupvault_lockconfigurationtype.go | 45 + .../aws-ec2-transitgatewayvpcattachment.go | 137 ++ cloudformation/emr/aws-emr-studio.go | 12 +- .../aws-healthlake-fhirdatastore.go | 127 ++ ...hlake-fhirdatastore_kmsencryptionconfig.go | 40 + ...lthlake-fhirdatastore_preloaddataconfig.go | 35 + ...althlake-fhirdatastore_sseconfiguration.go | 35 + ...erecipe_additionalinstanceconfiguration.go | 2 +- ...builder-imagerecipe_systemsmanageragent.go | 4 +- ...magebuilder-infrastructureconfiguration.go | 2 +- .../iot/aws-iot-topicrule_action.go | 5 + .../iot/aws-iot-topicrule_opensearchaction.go | 55 + cloudformation/memorydb/aws-memorydb-acl.go | 117 ++ .../memorydb/aws-memorydb-cluster.go | 222 ++ .../memorydb/aws-memorydb-cluster_endpoint.go | 40 + .../memorydb/aws-memorydb-parametergroup.go | 127 ++ .../memorydb/aws-memorydb-subnetgroup.go | 122 ++ cloudformation/memorydb/aws-memorydb-user.go | 122 ++ .../aws-msk-cluster_clientauthentication.go | 5 + cloudformation/msk/aws-msk-cluster_tls.go | 5 + .../msk/aws-msk-cluster_unauthenticated.go | 35 + .../aws-opensearchservice-domain.go | 177 ++ ...ice-domain_advancedsecurityoptionsinput.go | 45 + ...-opensearchservice-domain_clusterconfig.go | 80 + ...opensearchservice-domain_cognitooptions.go | 50 + ...rchservice-domain_domainendpointoptions.go | 55 + ...aws-opensearchservice-domain_ebsoptions.go | 50 + ...hservice-domain_encryptionatrestoptions.go | 40 + ...earchservice-domain_logpublishingoption.go | 40 + ...nsearchservice-domain_masteruseroptions.go | 45 + ...vice-domain_nodetonodeencryptionoptions.go | 35 + ...pensearchservice-domain_snapshotoptions.go | 35 + ...aws-opensearchservice-domain_vpcoptions.go | 40 + ...earchservice-domain_zoneawarenessconfig.go | 35 + .../aws-robomaker-simulationapplication.go | 9 +- .../s3/aws-s3-bucket_metricsconfiguration.go | 5 + cloudformation/sqs/aws-sqs-queue.go | 5 + schema/cloudformation.go | 1857 ++++++++++++++--- schema/cloudformation.schema.json | 1857 ++++++++++++++--- schema/sam.go | 1857 ++++++++++++++--- schema/sam.schema.json | 1857 ++++++++++++++--- 47 files changed, 8742 insertions(+), 1263 deletions(-) create mode 100644 cloudformation/acmpca/aws-acmpca-permission.go create mode 100644 cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go create mode 100644 cloudformation/aps/aws-aps-workspace.go create mode 100644 cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go create mode 100644 cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go create mode 100644 cloudformation/healthlake/aws-healthlake-fhirdatastore.go create mode 100644 cloudformation/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go create mode 100644 cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go create mode 100644 cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go create mode 100644 cloudformation/iot/aws-iot-topicrule_opensearchaction.go create mode 100644 cloudformation/memorydb/aws-memorydb-acl.go create mode 100644 cloudformation/memorydb/aws-memorydb-cluster.go create mode 100644 cloudformation/memorydb/aws-memorydb-cluster_endpoint.go create mode 100644 cloudformation/memorydb/aws-memorydb-parametergroup.go create mode 100644 cloudformation/memorydb/aws-memorydb-subnetgroup.go create mode 100644 cloudformation/memorydb/aws-memorydb-user.go create mode 100644 cloudformation/msk/aws-msk-cluster_unauthenticated.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_advancedsecurityoptionsinput.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_clusterconfig.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_cognitooptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_domainendpointoptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_ebsoptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_encryptionatrestoptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_logpublishingoption.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_masteruseroptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_nodetonodeencryptionoptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_snapshotoptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_vpcoptions.go create mode 100644 cloudformation/opensearchservice/aws-opensearchservice-domain_zoneawarenessconfig.go diff --git a/cloudformation/acmpca/aws-acmpca-permission.go b/cloudformation/acmpca/aws-acmpca-permission.go new file mode 100644 index 0000000000..6e19cde9a2 --- /dev/null +++ b/cloudformation/acmpca/aws-acmpca-permission.go @@ -0,0 +1,121 @@ +package acmpca + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Permission AWS CloudFormation Resource (AWS::ACMPCA::Permission) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html +type Permission struct { + + // Actions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-actions + Actions []string `json:"Actions,omitempty"` + + // CertificateAuthorityArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-certificateauthorityarn + CertificateAuthorityArn string `json:"CertificateAuthorityArn,omitempty"` + + // Principal AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-principal + Principal string `json:"Principal,omitempty"` + + // SourceAccount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-sourceaccount + SourceAccount string `json:"SourceAccount,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 *Permission) AWSCloudFormationType() string { + return "AWS::ACMPCA::Permission" +} + +// 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 Permission) MarshalJSON() ([]byte, error) { + type Properties Permission + 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 *Permission) UnmarshalJSON(b []byte) error { + type Properties Permission + 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 = Permission(*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/all.go b/cloudformation/all.go index 1ac2b46d34..623b04ea9c 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -17,6 +17,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/apprunner" "github.com/awslabs/goformation/v5/cloudformation/appstream" "github.com/awslabs/goformation/v5/cloudformation/appsync" + "github.com/awslabs/goformation/v5/cloudformation/aps" "github.com/awslabs/goformation/v5/cloudformation/ask" "github.com/awslabs/goformation/v5/cloudformation/athena" "github.com/awslabs/goformation/v5/cloudformation/auditmanager" @@ -86,6 +87,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/greengrassv2" "github.com/awslabs/goformation/v5/cloudformation/groundstation" "github.com/awslabs/goformation/v5/cloudformation/guardduty" + "github.com/awslabs/goformation/v5/cloudformation/healthlake" "github.com/awslabs/goformation/v5/cloudformation/iam" "github.com/awslabs/goformation/v5/cloudformation/imagebuilder" "github.com/awslabs/goformation/v5/cloudformation/inspector" @@ -120,12 +122,14 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/medialive" "github.com/awslabs/goformation/v5/cloudformation/mediapackage" "github.com/awslabs/goformation/v5/cloudformation/mediastore" + "github.com/awslabs/goformation/v5/cloudformation/memorydb" "github.com/awslabs/goformation/v5/cloudformation/msk" "github.com/awslabs/goformation/v5/cloudformation/mwaa" "github.com/awslabs/goformation/v5/cloudformation/neptune" "github.com/awslabs/goformation/v5/cloudformation/networkfirewall" "github.com/awslabs/goformation/v5/cloudformation/networkmanager" "github.com/awslabs/goformation/v5/cloudformation/nimblestudio" + "github.com/awslabs/goformation/v5/cloudformation/opensearchservice" "github.com/awslabs/goformation/v5/cloudformation/opsworks" "github.com/awslabs/goformation/v5/cloudformation/opsworkscm" "github.com/awslabs/goformation/v5/cloudformation/pinpoint" @@ -179,6 +183,8 @@ func AllResources() map[string]Resource { "AWS::ACMPCA::Certificate": &acmpca.Certificate{}, "AWS::ACMPCA::CertificateAuthority": &acmpca.CertificateAuthority{}, "AWS::ACMPCA::CertificateAuthorityActivation": &acmpca.CertificateAuthorityActivation{}, + "AWS::ACMPCA::Permission": &acmpca.Permission{}, + "AWS::APS::Workspace": &aps.Workspace{}, "AWS::AccessAnalyzer::Analyzer": &accessanalyzer.Analyzer{}, "AWS::AmazonMQ::Broker": &amazonmq.Broker{}, "AWS::AmazonMQ::Configuration": &amazonmq.Configuration{}, @@ -447,6 +453,7 @@ func AllResources() map[string]Resource { "AWS::EC2::TransitGatewayRouteTable": &ec2.TransitGatewayRouteTable{}, "AWS::EC2::TransitGatewayRouteTableAssociation": &ec2.TransitGatewayRouteTableAssociation{}, "AWS::EC2::TransitGatewayRouteTablePropagation": &ec2.TransitGatewayRouteTablePropagation{}, + "AWS::EC2::TransitGatewayVpcAttachment": &ec2.TransitGatewayVpcAttachment{}, "AWS::EC2::VPC": &ec2.VPC{}, "AWS::EC2::VPCCidrBlock": &ec2.VPCCidrBlock{}, "AWS::EC2::VPCDHCPOptionsAssociation": &ec2.VPCDHCPOptionsAssociation{}, @@ -583,6 +590,7 @@ func AllResources() map[string]Resource { "AWS::GuardDuty::Master": &guardduty.Master{}, "AWS::GuardDuty::Member": &guardduty.Member{}, "AWS::GuardDuty::ThreatIntelSet": &guardduty.ThreatIntelSet{}, + "AWS::HealthLake::FHIRDatastore": &healthlake.FHIRDatastore{}, "AWS::IAM::AccessKey": &iam.AccessKey{}, "AWS::IAM::Group": &iam.Group{}, "AWS::IAM::InstanceProfile": &iam.InstanceProfile{}, @@ -724,6 +732,11 @@ func AllResources() map[string]Resource { "AWS::MediaPackage::PackagingConfiguration": &mediapackage.PackagingConfiguration{}, "AWS::MediaPackage::PackagingGroup": &mediapackage.PackagingGroup{}, "AWS::MediaStore::Container": &mediastore.Container{}, + "AWS::MemoryDB::ACL": &memorydb.ACL{}, + "AWS::MemoryDB::Cluster": &memorydb.Cluster{}, + "AWS::MemoryDB::ParameterGroup": &memorydb.ParameterGroup{}, + "AWS::MemoryDB::SubnetGroup": &memorydb.SubnetGroup{}, + "AWS::MemoryDB::User": &memorydb.User{}, "AWS::Neptune::DBCluster": &neptune.DBCluster{}, "AWS::Neptune::DBClusterParameterGroup": &neptune.DBClusterParameterGroup{}, "AWS::Neptune::DBInstance": &neptune.DBInstance{}, @@ -744,6 +757,7 @@ func AllResources() map[string]Resource { "AWS::NimbleStudio::StreamingImage": &nimblestudio.StreamingImage{}, "AWS::NimbleStudio::Studio": &nimblestudio.Studio{}, "AWS::NimbleStudio::StudioComponent": &nimblestudio.StudioComponent{}, + "AWS::OpenSearchService::Domain": &opensearchservice.Domain{}, "AWS::OpsWorks::App": &opsworks.App{}, "AWS::OpsWorks::ElasticLoadBalancerAttachment": &opsworks.ElasticLoadBalancerAttachment{}, "AWS::OpsWorks::Instance": &opsworks.Instance{}, @@ -1049,6 +1063,54 @@ func (t *Template) GetACMPCACertificateAuthorityActivationWithName(name string) return nil, fmt.Errorf("resource %q of type acmpca.CertificateAuthorityActivation not found", name) } +// GetAllACMPCAPermissionResources retrieves all acmpca.Permission items from an AWS CloudFormation template +func (t *Template) GetAllACMPCAPermissionResources() map[string]*acmpca.Permission { + results := map[string]*acmpca.Permission{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *acmpca.Permission: + results[name] = resource + } + } + return results +} + +// GetACMPCAPermissionWithName retrieves all acmpca.Permission items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetACMPCAPermissionWithName(name string) (*acmpca.Permission, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *acmpca.Permission: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type acmpca.Permission not found", name) +} + +// GetAllAPSWorkspaceResources retrieves all aps.Workspace items from an AWS CloudFormation template +func (t *Template) GetAllAPSWorkspaceResources() map[string]*aps.Workspace { + results := map[string]*aps.Workspace{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *aps.Workspace: + results[name] = resource + } + } + return results +} + +// GetAPSWorkspaceWithName retrieves all aps.Workspace items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAPSWorkspaceWithName(name string) (*aps.Workspace, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *aps.Workspace: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type aps.Workspace not found", name) +} + // GetAllAccessAnalyzerAnalyzerResources retrieves all accessanalyzer.Analyzer items from an AWS CloudFormation template func (t *Template) GetAllAccessAnalyzerAnalyzerResources() map[string]*accessanalyzer.Analyzer { results := map[string]*accessanalyzer.Analyzer{} @@ -7481,6 +7543,30 @@ func (t *Template) GetEC2TransitGatewayRouteTablePropagationWithName(name string return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayRouteTablePropagation not found", name) } +// GetAllEC2TransitGatewayVpcAttachmentResources retrieves all ec2.TransitGatewayVpcAttachment items from an AWS CloudFormation template +func (t *Template) GetAllEC2TransitGatewayVpcAttachmentResources() map[string]*ec2.TransitGatewayVpcAttachment { + results := map[string]*ec2.TransitGatewayVpcAttachment{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.TransitGatewayVpcAttachment: + results[name] = resource + } + } + return results +} + +// GetEC2TransitGatewayVpcAttachmentWithName retrieves all ec2.TransitGatewayVpcAttachment items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2TransitGatewayVpcAttachmentWithName(name string) (*ec2.TransitGatewayVpcAttachment, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.TransitGatewayVpcAttachment: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayVpcAttachment not found", name) +} + // GetAllEC2VPCResources retrieves all ec2.VPC items from an AWS CloudFormation template func (t *Template) GetAllEC2VPCResources() map[string]*ec2.VPC { results := map[string]*ec2.VPC{} @@ -10745,6 +10831,30 @@ func (t *Template) GetGuardDutyThreatIntelSetWithName(name string) (*guardduty.T return nil, fmt.Errorf("resource %q of type guardduty.ThreatIntelSet not found", name) } +// GetAllHealthLakeFHIRDatastoreResources retrieves all healthlake.FHIRDatastore items from an AWS CloudFormation template +func (t *Template) GetAllHealthLakeFHIRDatastoreResources() map[string]*healthlake.FHIRDatastore { + results := map[string]*healthlake.FHIRDatastore{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *healthlake.FHIRDatastore: + results[name] = resource + } + } + return results +} + +// GetHealthLakeFHIRDatastoreWithName retrieves all healthlake.FHIRDatastore items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetHealthLakeFHIRDatastoreWithName(name string) (*healthlake.FHIRDatastore, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *healthlake.FHIRDatastore: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type healthlake.FHIRDatastore not found", name) +} + // GetAllIAMAccessKeyResources retrieves all iam.AccessKey items from an AWS CloudFormation template func (t *Template) GetAllIAMAccessKeyResources() map[string]*iam.AccessKey { results := map[string]*iam.AccessKey{} @@ -14129,6 +14239,126 @@ func (t *Template) GetMediaStoreContainerWithName(name string) (*mediastore.Cont return nil, fmt.Errorf("resource %q of type mediastore.Container not found", name) } +// GetAllMemoryDBACLResources retrieves all memorydb.ACL items from an AWS CloudFormation template +func (t *Template) GetAllMemoryDBACLResources() map[string]*memorydb.ACL { + results := map[string]*memorydb.ACL{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *memorydb.ACL: + results[name] = resource + } + } + return results +} + +// GetMemoryDBACLWithName retrieves all memorydb.ACL items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMemoryDBACLWithName(name string) (*memorydb.ACL, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *memorydb.ACL: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type memorydb.ACL not found", name) +} + +// GetAllMemoryDBClusterResources retrieves all memorydb.Cluster items from an AWS CloudFormation template +func (t *Template) GetAllMemoryDBClusterResources() map[string]*memorydb.Cluster { + results := map[string]*memorydb.Cluster{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *memorydb.Cluster: + results[name] = resource + } + } + return results +} + +// GetMemoryDBClusterWithName retrieves all memorydb.Cluster items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMemoryDBClusterWithName(name string) (*memorydb.Cluster, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *memorydb.Cluster: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type memorydb.Cluster not found", name) +} + +// GetAllMemoryDBParameterGroupResources retrieves all memorydb.ParameterGroup items from an AWS CloudFormation template +func (t *Template) GetAllMemoryDBParameterGroupResources() map[string]*memorydb.ParameterGroup { + results := map[string]*memorydb.ParameterGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *memorydb.ParameterGroup: + results[name] = resource + } + } + return results +} + +// GetMemoryDBParameterGroupWithName retrieves all memorydb.ParameterGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMemoryDBParameterGroupWithName(name string) (*memorydb.ParameterGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *memorydb.ParameterGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type memorydb.ParameterGroup not found", name) +} + +// GetAllMemoryDBSubnetGroupResources retrieves all memorydb.SubnetGroup items from an AWS CloudFormation template +func (t *Template) GetAllMemoryDBSubnetGroupResources() map[string]*memorydb.SubnetGroup { + results := map[string]*memorydb.SubnetGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *memorydb.SubnetGroup: + results[name] = resource + } + } + return results +} + +// GetMemoryDBSubnetGroupWithName retrieves all memorydb.SubnetGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMemoryDBSubnetGroupWithName(name string) (*memorydb.SubnetGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *memorydb.SubnetGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type memorydb.SubnetGroup not found", name) +} + +// GetAllMemoryDBUserResources retrieves all memorydb.User items from an AWS CloudFormation template +func (t *Template) GetAllMemoryDBUserResources() map[string]*memorydb.User { + results := map[string]*memorydb.User{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *memorydb.User: + results[name] = resource + } + } + return results +} + +// GetMemoryDBUserWithName retrieves all memorydb.User items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMemoryDBUserWithName(name string) (*memorydb.User, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *memorydb.User: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type memorydb.User not found", name) +} + // GetAllNeptuneDBClusterResources retrieves all neptune.DBCluster items from an AWS CloudFormation template func (t *Template) GetAllNeptuneDBClusterResources() map[string]*neptune.DBCluster { results := map[string]*neptune.DBCluster{} @@ -14609,6 +14839,30 @@ func (t *Template) GetNimbleStudioStudioComponentWithName(name string) (*nimbles return nil, fmt.Errorf("resource %q of type nimblestudio.StudioComponent not found", name) } +// GetAllOpenSearchServiceDomainResources retrieves all opensearchservice.Domain items from an AWS CloudFormation template +func (t *Template) GetAllOpenSearchServiceDomainResources() map[string]*opensearchservice.Domain { + results := map[string]*opensearchservice.Domain{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *opensearchservice.Domain: + results[name] = resource + } + } + return results +} + +// GetOpenSearchServiceDomainWithName retrieves all opensearchservice.Domain items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetOpenSearchServiceDomainWithName(name string) (*opensearchservice.Domain, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *opensearchservice.Domain: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type opensearchservice.Domain not found", name) +} + // GetAllOpsWorksAppResources retrieves all opsworks.App items from an AWS CloudFormation template func (t *Template) GetAllOpsWorksAppResources() map[string]*opsworks.App { results := map[string]*opsworks.App{} diff --git a/cloudformation/appsync/aws-appsync-datasource.go b/cloudformation/appsync/aws-appsync-datasource.go index d0c2609302..ff744161ec 100644 --- a/cloudformation/appsync/aws-appsync-datasource.go +++ b/cloudformation/appsync/aws-appsync-datasource.go @@ -47,6 +47,11 @@ type DataSource struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name Name string `json:"Name,omitempty"` + // OpenSearchServiceConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-opensearchserviceconfig + OpenSearchServiceConfig *DataSource_OpenSearchServiceConfig `json:"OpenSearchServiceConfig,omitempty"` + // RelationalDatabaseConfig AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-relationaldatabaseconfig diff --git a/cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go b/cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go new file mode 100644 index 0000000000..befbf94929 --- /dev/null +++ b/cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go @@ -0,0 +1,40 @@ +package appsync + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_OpenSearchServiceConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.OpenSearchServiceConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html +type DataSource_OpenSearchServiceConfig struct { + + // AwsRegion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html#cfn-appsync-datasource-opensearchserviceconfig-awsregion + AwsRegion string `json:"AwsRegion,omitempty"` + + // Endpoint AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html#cfn-appsync-datasource-opensearchserviceconfig-endpoint + Endpoint string `json:"Endpoint,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 *DataSource_OpenSearchServiceConfig) AWSCloudFormationType() string { + return "AWS::AppSync::DataSource.OpenSearchServiceConfig" +} diff --git a/cloudformation/aps/aws-aps-workspace.go b/cloudformation/aps/aws-aps-workspace.go new file mode 100644 index 0000000000..4bff72c6ff --- /dev/null +++ b/cloudformation/aps/aws-aps-workspace.go @@ -0,0 +1,112 @@ +package aps + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Workspace AWS CloudFormation Resource (AWS::APS::Workspace) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html +type Workspace struct { + + // Alias AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html#cfn-aps-workspace-alias + Alias string `json:"Alias,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html#cfn-aps-workspace-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Workspace) AWSCloudFormationType() string { + return "AWS::APS::Workspace" +} + +// 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 Workspace) MarshalJSON() ([]byte, error) { + type Properties Workspace + 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 *Workspace) UnmarshalJSON(b []byte) error { + type Properties Workspace + 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 = Workspace(*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/backup/aws-backup-backupvault.go b/cloudformation/backup/aws-backup-backupvault.go index 5ca748e7d5..f09d5fab48 100644 --- a/cloudformation/backup/aws-backup-backupvault.go +++ b/cloudformation/backup/aws-backup-backupvault.go @@ -32,6 +32,11 @@ type BackupVault struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-encryptionkeyarn EncryptionKeyArn string `json:"EncryptionKeyArn,omitempty"` + // LockConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-lockconfiguration + LockConfiguration *BackupVault_LockConfigurationType `json:"LockConfiguration,omitempty"` + // Notifications AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-notifications diff --git a/cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go b/cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go new file mode 100644 index 0000000000..8fe65a188d --- /dev/null +++ b/cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go @@ -0,0 +1,45 @@ +package backup + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// BackupVault_LockConfigurationType AWS CloudFormation Resource (AWS::Backup::BackupVault.LockConfigurationType) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html +type BackupVault_LockConfigurationType struct { + + // changeableForDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-changeablefordays + changeableForDays float64 `json:"changeableForDays,omitempty"` + + // maxRetentionDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-maxretentiondays + maxRetentionDays float64 `json:"maxRetentionDays,omitempty"` + + // minRetentionDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-minretentiondays + minRetentionDays float64 `json:"minRetentionDays,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 *BackupVault_LockConfigurationType) AWSCloudFormationType() string { + return "AWS::Backup::BackupVault.LockConfigurationType" +} diff --git a/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go b/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go new file mode 100644 index 0000000000..dadc793e96 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go @@ -0,0 +1,137 @@ +package ec2 + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// TransitGatewayVpcAttachment AWS CloudFormation Resource (AWS::EC2::TransitGatewayVpcAttachment) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html +type TransitGatewayVpcAttachment struct { + + // AddSubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-addsubnetids + AddSubnetIds []string `json:"AddSubnetIds,omitempty"` + + // Options AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-options + Options interface{} `json:"Options,omitempty"` + + // RemoveSubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-removesubnetids + RemoveSubnetIds []string `json:"RemoveSubnetIds,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-subnetids + SubnetIds []string `json:"SubnetIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TransitGatewayId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-transitgatewayid + TransitGatewayId string `json:"TransitGatewayId,omitempty"` + + // VpcId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-vpcid + VpcId string `json:"VpcId,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *TransitGatewayVpcAttachment) AWSCloudFormationType() string { + return "AWS::EC2::TransitGatewayVpcAttachment" +} + +// 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 TransitGatewayVpcAttachment) MarshalJSON() ([]byte, error) { + type Properties TransitGatewayVpcAttachment + 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 *TransitGatewayVpcAttachment) UnmarshalJSON(b []byte) error { + type Properties TransitGatewayVpcAttachment + 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 = TransitGatewayVpcAttachment(*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/emr/aws-emr-studio.go b/cloudformation/emr/aws-emr-studio.go index 3f0eba5539..3c0f4680d9 100644 --- a/cloudformation/emr/aws-emr-studio.go +++ b/cloudformation/emr/aws-emr-studio.go @@ -33,6 +33,16 @@ type Studio struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-enginesecuritygroupid EngineSecurityGroupId string `json:"EngineSecurityGroupId,omitempty"` + // IdpAuthUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-idpauthurl + IdpAuthUrl string `json:"IdpAuthUrl,omitempty"` + + // IdpRelayStateParameterName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-idprelaystateparametername + IdpRelayStateParameterName string `json:"IdpRelayStateParameterName,omitempty"` + // Name AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-name @@ -54,7 +64,7 @@ type Studio struct { Tags []tags.Tag `json:"Tags,omitempty"` // UserRole AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-userrole UserRole string `json:"UserRole,omitempty"` diff --git a/cloudformation/healthlake/aws-healthlake-fhirdatastore.go b/cloudformation/healthlake/aws-healthlake-fhirdatastore.go new file mode 100644 index 0000000000..c177ffeb24 --- /dev/null +++ b/cloudformation/healthlake/aws-healthlake-fhirdatastore.go @@ -0,0 +1,127 @@ +package healthlake + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// FHIRDatastore AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html +type FHIRDatastore struct { + + // DatastoreName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-datastorename + DatastoreName string `json:"DatastoreName,omitempty"` + + // DatastoreTypeVersion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-datastoretypeversion + DatastoreTypeVersion string `json:"DatastoreTypeVersion,omitempty"` + + // PreloadDataConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-preloaddataconfig + PreloadDataConfig *FHIRDatastore_PreloadDataConfig `json:"PreloadDataConfig,omitempty"` + + // SseConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-sseconfiguration + SseConfiguration *FHIRDatastore_SseConfiguration `json:"SseConfiguration,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FHIRDatastore) AWSCloudFormationType() string { + return "AWS::HealthLake::FHIRDatastore" +} + +// 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 FHIRDatastore) MarshalJSON() ([]byte, error) { + type Properties FHIRDatastore + 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 *FHIRDatastore) UnmarshalJSON(b []byte) error { + type Properties FHIRDatastore + 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 = FHIRDatastore(*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/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go b/cloudformation/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go new file mode 100644 index 0000000000..c11a0e0521 --- /dev/null +++ b/cloudformation/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go @@ -0,0 +1,40 @@ +package healthlake + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FHIRDatastore_KmsEncryptionConfig AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html +type FHIRDatastore_KmsEncryptionConfig struct { + + // CmkType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html#cfn-healthlake-fhirdatastore-kmsencryptionconfig-cmktype + CmkType string `json:"CmkType,omitempty"` + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html#cfn-healthlake-fhirdatastore-kmsencryptionconfig-kmskeyid + KmsKeyId string `json:"KmsKeyId,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 *FHIRDatastore_KmsEncryptionConfig) AWSCloudFormationType() string { + return "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" +} diff --git a/cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go b/cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go new file mode 100644 index 0000000000..565efeb6c1 --- /dev/null +++ b/cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go @@ -0,0 +1,35 @@ +package healthlake + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FHIRDatastore_PreloadDataConfig AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore.PreloadDataConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html +type FHIRDatastore_PreloadDataConfig struct { + + // PreloadDataType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html#cfn-healthlake-fhirdatastore-preloaddataconfig-preloaddatatype + PreloadDataType string `json:"PreloadDataType,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 *FHIRDatastore_PreloadDataConfig) AWSCloudFormationType() string { + return "AWS::HealthLake::FHIRDatastore.PreloadDataConfig" +} diff --git a/cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go b/cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go new file mode 100644 index 0000000000..971123d475 --- /dev/null +++ b/cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go @@ -0,0 +1,35 @@ +package healthlake + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FHIRDatastore_SseConfiguration AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore.SseConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html +type FHIRDatastore_SseConfiguration struct { + + // KmsEncryptionConfig AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html#cfn-healthlake-fhirdatastore-sseconfiguration-kmsencryptionconfig + KmsEncryptionConfig *FHIRDatastore_KmsEncryptionConfig `json:"KmsEncryptionConfig,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 *FHIRDatastore_SseConfiguration) AWSCloudFormationType() string { + return "AWS::HealthLake::FHIRDatastore.SseConfiguration" +} diff --git a/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go b/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go index 4fa758bce5..de469915a7 100644 --- a/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go +++ b/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go @@ -14,7 +14,7 @@ type ImageRecipe_AdditionalInstanceConfiguration struct { SystemsManagerAgent *ImageRecipe_SystemsManagerAgent `json:"SystemsManagerAgent,omitempty"` // UserDataOverride AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-userdataoverride UserDataOverride string `json:"UserDataOverride,omitempty"` diff --git a/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go b/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go index 8558965c2f..2cc5b2f712 100644 --- a/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go +++ b/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go @@ -9,9 +9,9 @@ import ( type ImageRecipe_SystemsManagerAgent struct { // UninstallAfterBuild AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-systemsmanageragent.html#cfn-imagebuilder-imagerecipe-systemsmanageragent-uninstallafterbuild - UninstallAfterBuild bool `json:"UninstallAfterBuild"` + UninstallAfterBuild bool `json:"UninstallAfterBuild,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go b/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go index dd9409ae60..811587cec8 100644 --- a/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go +++ b/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go @@ -35,7 +35,7 @@ type InfrastructureConfiguration struct { // Logging AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-logging - Logging interface{} `json:"Logging,omitempty"` + Logging *InfrastructureConfiguration_Logging `json:"Logging,omitempty"` // Name AWS CloudFormation Property // Required: true diff --git a/cloudformation/iot/aws-iot-topicrule_action.go b/cloudformation/iot/aws-iot-topicrule_action.go index 8f0d624f67..85dd5cd41e 100644 --- a/cloudformation/iot/aws-iot-topicrule_action.go +++ b/cloudformation/iot/aws-iot-topicrule_action.go @@ -78,6 +78,11 @@ type TopicRule_Action struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-lambda Lambda *TopicRule_LambdaAction `json:"Lambda,omitempty"` + // OpenSearch AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-opensearch + OpenSearch *TopicRule_OpenSearchAction `json:"OpenSearch,omitempty"` + // Republish AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-republish diff --git a/cloudformation/iot/aws-iot-topicrule_opensearchaction.go b/cloudformation/iot/aws-iot-topicrule_opensearchaction.go new file mode 100644 index 0000000000..bbfea9d6ef --- /dev/null +++ b/cloudformation/iot/aws-iot-topicrule_opensearchaction.go @@ -0,0 +1,55 @@ +package iot + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// TopicRule_OpenSearchAction AWS CloudFormation Resource (AWS::IoT::TopicRule.OpenSearchAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html +type TopicRule_OpenSearchAction struct { + + // Endpoint AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-endpoint + Endpoint string `json:"Endpoint,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-id + Id string `json:"Id,omitempty"` + + // Index AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-index + Index string `json:"Index,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-type + Type string `json:"Type,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *TopicRule_OpenSearchAction) AWSCloudFormationType() string { + return "AWS::IoT::TopicRule.OpenSearchAction" +} diff --git a/cloudformation/memorydb/aws-memorydb-acl.go b/cloudformation/memorydb/aws-memorydb-acl.go new file mode 100644 index 0000000000..3dbc6b595c --- /dev/null +++ b/cloudformation/memorydb/aws-memorydb-acl.go @@ -0,0 +1,117 @@ +package memorydb + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// ACL AWS CloudFormation Resource (AWS::MemoryDB::ACL) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html +type ACL struct { + + // ACLName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html#cfn-memorydb-acl-aclname + ACLName string `json:"ACLName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html#cfn-memorydb-acl-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // UserNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-acl.html#cfn-memorydb-acl-usernames + UserNames []string `json:"UserNames,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 *ACL) AWSCloudFormationType() string { + return "AWS::MemoryDB::ACL" +} + +// 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 ACL) MarshalJSON() ([]byte, error) { + type Properties ACL + 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 *ACL) UnmarshalJSON(b []byte) error { + type Properties ACL + 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 = ACL(*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/memorydb/aws-memorydb-cluster.go b/cloudformation/memorydb/aws-memorydb-cluster.go new file mode 100644 index 0000000000..cedb621dc0 --- /dev/null +++ b/cloudformation/memorydb/aws-memorydb-cluster.go @@ -0,0 +1,222 @@ +package memorydb + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Cluster AWS CloudFormation Resource (AWS::MemoryDB::Cluster) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html +type Cluster struct { + + // ACLName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-aclname + ACLName string `json:"ACLName,omitempty"` + + // AutoMinorVersionUpgrade AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-autominorversionupgrade + AutoMinorVersionUpgrade bool `json:"AutoMinorVersionUpgrade,omitempty"` + + // ClusterEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-clusterendpoint + ClusterEndpoint *Cluster_Endpoint `json:"ClusterEndpoint,omitempty"` + + // ClusterName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-clustername + ClusterName string `json:"ClusterName,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-description + Description string `json:"Description,omitempty"` + + // EngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-engineversion + EngineVersion string `json:"EngineVersion,omitempty"` + + // FinalSnapshotName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-finalsnapshotname + FinalSnapshotName string `json:"FinalSnapshotName,omitempty"` + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + + // MaintenanceWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-maintenancewindow + MaintenanceWindow string `json:"MaintenanceWindow,omitempty"` + + // NodeType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-nodetype + NodeType string `json:"NodeType,omitempty"` + + // NumReplicasPerShard AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-numreplicaspershard + NumReplicasPerShard int `json:"NumReplicasPerShard,omitempty"` + + // NumShards AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-numshards + NumShards int `json:"NumShards,omitempty"` + + // ParameterGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-parametergroupname + ParameterGroupName string `json:"ParameterGroupName,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-port + Port int `json:"Port,omitempty"` + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // SnapshotArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-snapshotarns + SnapshotArns []string `json:"SnapshotArns,omitempty"` + + // SnapshotName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-snapshotname + SnapshotName string `json:"SnapshotName,omitempty"` + + // SnapshotRetentionLimit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-snapshotretentionlimit + SnapshotRetentionLimit int `json:"SnapshotRetentionLimit,omitempty"` + + // SnapshotWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-snapshotwindow + SnapshotWindow string `json:"SnapshotWindow,omitempty"` + + // SnsTopicArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-snstopicarn + SnsTopicArn string `json:"SnsTopicArn,omitempty"` + + // SnsTopicStatus AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-snstopicstatus + SnsTopicStatus string `json:"SnsTopicStatus,omitempty"` + + // SubnetGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-subnetgroupname + SubnetGroupName string `json:"SubnetGroupName,omitempty"` + + // TLSEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-tlsenabled + TLSEnabled bool `json:"TLSEnabled,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster) AWSCloudFormationType() string { + return "AWS::MemoryDB::Cluster" +} + +// 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 Cluster) MarshalJSON() ([]byte, error) { + type Properties Cluster + 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 *Cluster) UnmarshalJSON(b []byte) error { + type Properties Cluster + 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 = Cluster(*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/memorydb/aws-memorydb-cluster_endpoint.go b/cloudformation/memorydb/aws-memorydb-cluster_endpoint.go new file mode 100644 index 0000000000..4e75d014cd --- /dev/null +++ b/cloudformation/memorydb/aws-memorydb-cluster_endpoint.go @@ -0,0 +1,40 @@ +package memorydb + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Cluster_Endpoint AWS CloudFormation Resource (AWS::MemoryDB::Cluster.Endpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-memorydb-cluster-endpoint.html +type Cluster_Endpoint struct { + + // Address AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-memorydb-cluster-endpoint.html#cfn-memorydb-cluster-endpoint-address + Address string `json:"Address,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-memorydb-cluster-endpoint.html#cfn-memorydb-cluster-endpoint-port + Port int `json:"Port,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_Endpoint) AWSCloudFormationType() string { + return "AWS::MemoryDB::Cluster.Endpoint" +} diff --git a/cloudformation/memorydb/aws-memorydb-parametergroup.go b/cloudformation/memorydb/aws-memorydb-parametergroup.go new file mode 100644 index 0000000000..25a06c0c9a --- /dev/null +++ b/cloudformation/memorydb/aws-memorydb-parametergroup.go @@ -0,0 +1,127 @@ +package memorydb + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// ParameterGroup AWS CloudFormation Resource (AWS::MemoryDB::ParameterGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html +type ParameterGroup struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html#cfn-memorydb-parametergroup-description + Description string `json:"Description,omitempty"` + + // Family AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html#cfn-memorydb-parametergroup-family + Family string `json:"Family,omitempty"` + + // ParameterGroupName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html#cfn-memorydb-parametergroup-parametergroupname + ParameterGroupName string `json:"ParameterGroupName,omitempty"` + + // Parameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html#cfn-memorydb-parametergroup-parameters + Parameters interface{} `json:"Parameters,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html#cfn-memorydb-parametergroup-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *ParameterGroup) AWSCloudFormationType() string { + return "AWS::MemoryDB::ParameterGroup" +} + +// 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 ParameterGroup) MarshalJSON() ([]byte, error) { + type Properties ParameterGroup + 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 *ParameterGroup) UnmarshalJSON(b []byte) error { + type Properties ParameterGroup + 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 = ParameterGroup(*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/memorydb/aws-memorydb-subnetgroup.go b/cloudformation/memorydb/aws-memorydb-subnetgroup.go new file mode 100644 index 0000000000..8eec33e7d9 --- /dev/null +++ b/cloudformation/memorydb/aws-memorydb-subnetgroup.go @@ -0,0 +1,122 @@ +package memorydb + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// SubnetGroup AWS CloudFormation Resource (AWS::MemoryDB::SubnetGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html +type SubnetGroup struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html#cfn-memorydb-subnetgroup-description + Description string `json:"Description,omitempty"` + + // SubnetGroupName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html#cfn-memorydb-subnetgroup-subnetgroupname + SubnetGroupName string `json:"SubnetGroupName,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html#cfn-memorydb-subnetgroup-subnetids + SubnetIds []string `json:"SubnetIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html#cfn-memorydb-subnetgroup-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SubnetGroup) AWSCloudFormationType() string { + return "AWS::MemoryDB::SubnetGroup" +} + +// 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 SubnetGroup) MarshalJSON() ([]byte, error) { + type Properties SubnetGroup + 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 *SubnetGroup) UnmarshalJSON(b []byte) error { + type Properties SubnetGroup + 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 = SubnetGroup(*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/memorydb/aws-memorydb-user.go b/cloudformation/memorydb/aws-memorydb-user.go new file mode 100644 index 0000000000..f4d5c7bd66 --- /dev/null +++ b/cloudformation/memorydb/aws-memorydb-user.go @@ -0,0 +1,122 @@ +package memorydb + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// User AWS CloudFormation Resource (AWS::MemoryDB::User) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html +type User struct { + + // AccessString AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html#cfn-memorydb-user-accessstring + AccessString string `json:"AccessString,omitempty"` + + // AuthenticationMode AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html#cfn-memorydb-user-authenticationmode + AuthenticationMode interface{} `json:"AuthenticationMode,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html#cfn-memorydb-user-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // UserName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html#cfn-memorydb-user-username + UserName string `json:"UserName,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 *User) AWSCloudFormationType() string { + return "AWS::MemoryDB::User" +} + +// 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 User) MarshalJSON() ([]byte, error) { + type Properties User + 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 *User) UnmarshalJSON(b []byte) error { + type Properties User + 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 = User(*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/msk/aws-msk-cluster_clientauthentication.go b/cloudformation/msk/aws-msk-cluster_clientauthentication.go index 5b4f78a1a5..521c040f44 100644 --- a/cloudformation/msk/aws-msk-cluster_clientauthentication.go +++ b/cloudformation/msk/aws-msk-cluster_clientauthentication.go @@ -18,6 +18,11 @@ type Cluster_ClientAuthentication struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-clientauthentication.html#cfn-msk-cluster-clientauthentication-tls Tls *Cluster_Tls `json:"Tls,omitempty"` + // Unauthenticated AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-clientauthentication.html#cfn-msk-cluster-clientauthentication-unauthenticated + Unauthenticated *Cluster_Unauthenticated `json:"Unauthenticated,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/msk/aws-msk-cluster_tls.go b/cloudformation/msk/aws-msk-cluster_tls.go index 4f9c74903d..74b6974929 100644 --- a/cloudformation/msk/aws-msk-cluster_tls.go +++ b/cloudformation/msk/aws-msk-cluster_tls.go @@ -13,6 +13,11 @@ type Cluster_Tls struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-tls.html#cfn-msk-cluster-tls-certificateauthorityarnlist CertificateAuthorityArnList []string `json:"CertificateAuthorityArnList,omitempty"` + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-tls.html#cfn-msk-cluster-tls-enabled + Enabled bool `json:"Enabled,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/msk/aws-msk-cluster_unauthenticated.go b/cloudformation/msk/aws-msk-cluster_unauthenticated.go new file mode 100644 index 0000000000..4dec0e3f52 --- /dev/null +++ b/cloudformation/msk/aws-msk-cluster_unauthenticated.go @@ -0,0 +1,35 @@ +package msk + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Cluster_Unauthenticated AWS CloudFormation Resource (AWS::MSK::Cluster.Unauthenticated) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-unauthenticated.html +type Cluster_Unauthenticated struct { + + // Enabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-unauthenticated.html#cfn-msk-cluster-unauthenticated-enabled + Enabled bool `json:"Enabled"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_Unauthenticated) AWSCloudFormationType() string { + return "AWS::MSK::Cluster.Unauthenticated" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain.go b/cloudformation/opensearchservice/aws-opensearchservice-domain.go new file mode 100644 index 0000000000..e27fc56573 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain.go @@ -0,0 +1,177 @@ +package opensearchservice + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Domain AWS CloudFormation Resource (AWS::OpenSearchService::Domain) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html +type Domain struct { + + // AccessPolicies AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-accesspolicies + AccessPolicies interface{} `json:"AccessPolicies,omitempty"` + + // AdvancedOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-advancedoptions + AdvancedOptions map[string]string `json:"AdvancedOptions,omitempty"` + + // AdvancedSecurityOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-advancedsecurityoptions + AdvancedSecurityOptions *Domain_AdvancedSecurityOptionsInput `json:"AdvancedSecurityOptions,omitempty"` + + // ClusterConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-clusterconfig + ClusterConfig *Domain_ClusterConfig `json:"ClusterConfig,omitempty"` + + // CognitoOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-cognitooptions + CognitoOptions *Domain_CognitoOptions `json:"CognitoOptions,omitempty"` + + // DomainEndpointOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-domainendpointoptions + DomainEndpointOptions *Domain_DomainEndpointOptions `json:"DomainEndpointOptions,omitempty"` + + // DomainName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-domainname + DomainName string `json:"DomainName,omitempty"` + + // EBSOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-ebsoptions + EBSOptions *Domain_EBSOptions `json:"EBSOptions,omitempty"` + + // EncryptionAtRestOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-encryptionatrestoptions + EncryptionAtRestOptions *Domain_EncryptionAtRestOptions `json:"EncryptionAtRestOptions,omitempty"` + + // EngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-engineversion + EngineVersion string `json:"EngineVersion,omitempty"` + + // LogPublishingOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-logpublishingoptions + LogPublishingOptions map[string]Domain_LogPublishingOption `json:"LogPublishingOptions,omitempty"` + + // NodeToNodeEncryptionOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-nodetonodeencryptionoptions + NodeToNodeEncryptionOptions *Domain_NodeToNodeEncryptionOptions `json:"NodeToNodeEncryptionOptions,omitempty"` + + // SnapshotOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-snapshotoptions + SnapshotOptions *Domain_SnapshotOptions `json:"SnapshotOptions,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // VPCOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#cfn-opensearchservice-domain-vpcoptions + VPCOptions *Domain_VPCOptions `json:"VPCOptions,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 *Domain) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain" +} + +// 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 Domain) MarshalJSON() ([]byte, error) { + type Properties Domain + 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 *Domain) UnmarshalJSON(b []byte) error { + type Properties Domain + 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 = Domain(*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/opensearchservice/aws-opensearchservice-domain_advancedsecurityoptionsinput.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_advancedsecurityoptionsinput.go new file mode 100644 index 0000000000..cb4b425c79 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_advancedsecurityoptionsinput.go @@ -0,0 +1,45 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_AdvancedSecurityOptionsInput AWS CloudFormation Resource (AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html +type Domain_AdvancedSecurityOptionsInput struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html#cfn-opensearchservice-domain-advancedsecurityoptionsinput-enabled + Enabled bool `json:"Enabled,omitempty"` + + // InternalUserDatabaseEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html#cfn-opensearchservice-domain-advancedsecurityoptionsinput-internaluserdatabaseenabled + InternalUserDatabaseEnabled bool `json:"InternalUserDatabaseEnabled,omitempty"` + + // MasterUserOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html#cfn-opensearchservice-domain-advancedsecurityoptionsinput-masteruseroptions + MasterUserOptions *Domain_MasterUserOptions `json:"MasterUserOptions,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 *Domain_AdvancedSecurityOptionsInput) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_clusterconfig.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_clusterconfig.go new file mode 100644 index 0000000000..1191809f85 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_clusterconfig.go @@ -0,0 +1,80 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_ClusterConfig AWS CloudFormation Resource (AWS::OpenSearchService::Domain.ClusterConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html +type Domain_ClusterConfig struct { + + // DedicatedMasterCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-dedicatedmastercount + DedicatedMasterCount int `json:"DedicatedMasterCount,omitempty"` + + // DedicatedMasterEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-dedicatedmasterenabled + DedicatedMasterEnabled bool `json:"DedicatedMasterEnabled,omitempty"` + + // DedicatedMasterType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-dedicatedmastertype + DedicatedMasterType string `json:"DedicatedMasterType,omitempty"` + + // InstanceCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-instancecount + InstanceCount int `json:"InstanceCount,omitempty"` + + // InstanceType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-instancetype + InstanceType string `json:"InstanceType,omitempty"` + + // WarmCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-warmcount + WarmCount int `json:"WarmCount,omitempty"` + + // WarmEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-warmenabled + WarmEnabled bool `json:"WarmEnabled,omitempty"` + + // WarmType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-warmtype + WarmType string `json:"WarmType,omitempty"` + + // ZoneAwarenessConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-zoneawarenessconfig + ZoneAwarenessConfig *Domain_ZoneAwarenessConfig `json:"ZoneAwarenessConfig,omitempty"` + + // ZoneAwarenessEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html#cfn-opensearchservice-domain-clusterconfig-zoneawarenessenabled + ZoneAwarenessEnabled bool `json:"ZoneAwarenessEnabled,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 *Domain_ClusterConfig) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.ClusterConfig" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_cognitooptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_cognitooptions.go new file mode 100644 index 0000000000..edaef93399 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_cognitooptions.go @@ -0,0 +1,50 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_CognitoOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.CognitoOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html +type Domain_CognitoOptions struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html#cfn-opensearchservice-domain-cognitooptions-enabled + Enabled bool `json:"Enabled,omitempty"` + + // IdentityPoolId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html#cfn-opensearchservice-domain-cognitooptions-identitypoolid + IdentityPoolId string `json:"IdentityPoolId,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html#cfn-opensearchservice-domain-cognitooptions-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // UserPoolId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html#cfn-opensearchservice-domain-cognitooptions-userpoolid + UserPoolId string `json:"UserPoolId,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 *Domain_CognitoOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.CognitoOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_domainendpointoptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_domainendpointoptions.go new file mode 100644 index 0000000000..44ed03e509 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_domainendpointoptions.go @@ -0,0 +1,55 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_DomainEndpointOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.DomainEndpointOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html +type Domain_DomainEndpointOptions struct { + + // CustomEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html#cfn-opensearchservice-domain-domainendpointoptions-customendpoint + CustomEndpoint string `json:"CustomEndpoint,omitempty"` + + // CustomEndpointCertificateArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html#cfn-opensearchservice-domain-domainendpointoptions-customendpointcertificatearn + CustomEndpointCertificateArn string `json:"CustomEndpointCertificateArn,omitempty"` + + // CustomEndpointEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html#cfn-opensearchservice-domain-domainendpointoptions-customendpointenabled + CustomEndpointEnabled bool `json:"CustomEndpointEnabled,omitempty"` + + // EnforceHTTPS AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html#cfn-opensearchservice-domain-domainendpointoptions-enforcehttps + EnforceHTTPS bool `json:"EnforceHTTPS,omitempty"` + + // TLSSecurityPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html#cfn-opensearchservice-domain-domainendpointoptions-tlssecuritypolicy + TLSSecurityPolicy string `json:"TLSSecurityPolicy,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 *Domain_DomainEndpointOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.DomainEndpointOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_ebsoptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_ebsoptions.go new file mode 100644 index 0000000000..fddc97c473 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_ebsoptions.go @@ -0,0 +1,50 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_EBSOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.EBSOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html +type Domain_EBSOptions struct { + + // EBSEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html#cfn-opensearchservice-domain-ebsoptions-ebsenabled + EBSEnabled bool `json:"EBSEnabled,omitempty"` + + // Iops AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html#cfn-opensearchservice-domain-ebsoptions-iops + Iops int `json:"Iops,omitempty"` + + // VolumeSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html#cfn-opensearchservice-domain-ebsoptions-volumesize + VolumeSize int `json:"VolumeSize,omitempty"` + + // VolumeType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html#cfn-opensearchservice-domain-ebsoptions-volumetype + VolumeType string `json:"VolumeType,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 *Domain_EBSOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.EBSOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_encryptionatrestoptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_encryptionatrestoptions.go new file mode 100644 index 0000000000..d832a662fc --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_encryptionatrestoptions.go @@ -0,0 +1,40 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_EncryptionAtRestOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.EncryptionAtRestOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html +type Domain_EncryptionAtRestOptions struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html#cfn-opensearchservice-domain-encryptionatrestoptions-enabled + Enabled bool `json:"Enabled,omitempty"` + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html#cfn-opensearchservice-domain-encryptionatrestoptions-kmskeyid + KmsKeyId string `json:"KmsKeyId,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 *Domain_EncryptionAtRestOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.EncryptionAtRestOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_logpublishingoption.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_logpublishingoption.go new file mode 100644 index 0000000000..65bd5a3b99 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_logpublishingoption.go @@ -0,0 +1,40 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_LogPublishingOption AWS CloudFormation Resource (AWS::OpenSearchService::Domain.LogPublishingOption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html +type Domain_LogPublishingOption struct { + + // CloudWatchLogsLogGroupArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html#cfn-opensearchservice-domain-logpublishingoption-cloudwatchlogsloggrouparn + CloudWatchLogsLogGroupArn string `json:"CloudWatchLogsLogGroupArn,omitempty"` + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html#cfn-opensearchservice-domain-logpublishingoption-enabled + Enabled bool `json:"Enabled,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Domain_LogPublishingOption) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.LogPublishingOption" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_masteruseroptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_masteruseroptions.go new file mode 100644 index 0000000000..a69513fa4b --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_masteruseroptions.go @@ -0,0 +1,45 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_MasterUserOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.MasterUserOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html +type Domain_MasterUserOptions struct { + + // MasterUserARN AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html#cfn-opensearchservice-domain-masteruseroptions-masteruserarn + MasterUserARN string `json:"MasterUserARN,omitempty"` + + // MasterUserName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html#cfn-opensearchservice-domain-masteruseroptions-masterusername + MasterUserName string `json:"MasterUserName,omitempty"` + + // MasterUserPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html#cfn-opensearchservice-domain-masteruseroptions-masteruserpassword + MasterUserPassword string `json:"MasterUserPassword,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 *Domain_MasterUserOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.MasterUserOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_nodetonodeencryptionoptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_nodetonodeencryptionoptions.go new file mode 100644 index 0000000000..30818a7af9 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_nodetonodeencryptionoptions.go @@ -0,0 +1,35 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_NodeToNodeEncryptionOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html +type Domain_NodeToNodeEncryptionOptions struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html#cfn-opensearchservice-domain-nodetonodeencryptionoptions-enabled + Enabled bool `json:"Enabled,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Domain_NodeToNodeEncryptionOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_snapshotoptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_snapshotoptions.go new file mode 100644 index 0000000000..406b6365b8 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_snapshotoptions.go @@ -0,0 +1,35 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_SnapshotOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.SnapshotOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-snapshotoptions.html +type Domain_SnapshotOptions struct { + + // AutomatedSnapshotStartHour AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-snapshotoptions.html#cfn-opensearchservice-domain-snapshotoptions-automatedsnapshotstarthour + AutomatedSnapshotStartHour int `json:"AutomatedSnapshotStartHour,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 *Domain_SnapshotOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.SnapshotOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_vpcoptions.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_vpcoptions.go new file mode 100644 index 0000000000..8fde2a208d --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_vpcoptions.go @@ -0,0 +1,40 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_VPCOptions AWS CloudFormation Resource (AWS::OpenSearchService::Domain.VPCOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html +type Domain_VPCOptions struct { + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html#cfn-opensearchservice-domain-vpcoptions-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html#cfn-opensearchservice-domain-vpcoptions-subnetids + SubnetIds []string `json:"SubnetIds,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 *Domain_VPCOptions) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.VPCOptions" +} diff --git a/cloudformation/opensearchservice/aws-opensearchservice-domain_zoneawarenessconfig.go b/cloudformation/opensearchservice/aws-opensearchservice-domain_zoneawarenessconfig.go new file mode 100644 index 0000000000..ee640f5362 --- /dev/null +++ b/cloudformation/opensearchservice/aws-opensearchservice-domain_zoneawarenessconfig.go @@ -0,0 +1,35 @@ +package opensearchservice + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Domain_ZoneAwarenessConfig AWS CloudFormation Resource (AWS::OpenSearchService::Domain.ZoneAwarenessConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-zoneawarenessconfig.html +type Domain_ZoneAwarenessConfig struct { + + // AvailabilityZoneCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-zoneawarenessconfig.html#cfn-opensearchservice-domain-zoneawarenessconfig-availabilityzonecount + AvailabilityZoneCount int `json:"AvailabilityZoneCount,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 *Domain_ZoneAwarenessConfig) AWSCloudFormationType() string { + return "AWS::OpenSearchService::Domain.ZoneAwarenessConfig" +} diff --git a/cloudformation/robomaker/aws-robomaker-simulationapplication.go b/cloudformation/robomaker/aws-robomaker-simulationapplication.go index 36fb8cf72d..92ff6a3d39 100644 --- a/cloudformation/robomaker/aws-robomaker-simulationapplication.go +++ b/cloudformation/robomaker/aws-robomaker-simulationapplication.go @@ -17,13 +17,18 @@ type SimulationApplication struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-currentrevisionid CurrentRevisionId string `json:"CurrentRevisionId,omitempty"` + // Environment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-environment + Environment string `json:"Environment,omitempty"` + // Name AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-name Name string `json:"Name,omitempty"` // RenderingEngine AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-renderingengine RenderingEngine *SimulationApplication_RenderingEngine `json:"RenderingEngine,omitempty"` @@ -38,7 +43,7 @@ type SimulationApplication struct { SimulationSoftwareSuite *SimulationApplication_SimulationSoftwareSuite `json:"SimulationSoftwareSuite,omitempty"` // Sources AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-robomaker-simulationapplication.html#cfn-robomaker-simulationapplication-sources Sources []SimulationApplication_SourceConfig `json:"Sources,omitempty"` diff --git a/cloudformation/s3/aws-s3-bucket_metricsconfiguration.go b/cloudformation/s3/aws-s3-bucket_metricsconfiguration.go index 627adda3d9..255569bb2c 100644 --- a/cloudformation/s3/aws-s3-bucket_metricsconfiguration.go +++ b/cloudformation/s3/aws-s3-bucket_metricsconfiguration.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html type Bucket_MetricsConfiguration struct { + // AccessPointArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-accesspointarn + AccessPointArn string `json:"AccessPointArn,omitempty"` + // Id AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-id diff --git a/cloudformation/sqs/aws-sqs-queue.go b/cloudformation/sqs/aws-sqs-queue.go index 434a30e110..8689931ad7 100644 --- a/cloudformation/sqs/aws-sqs-queue.go +++ b/cloudformation/sqs/aws-sqs-queue.go @@ -68,6 +68,11 @@ type Queue struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-sqs-queue-receivemsgwaittime 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 + 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 diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 589d9d4766..ae51b4bfd5 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -736,6 +736,146 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::ACMPCA::Permission": { + "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": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + } + }, + "required": [ + "Actions", + "CertificateAuthorityArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::APS::Workspace": { + "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": { + "Alias": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::AccessAnalyzer::Analyzer": { "additionalProperties": false, "properties": { @@ -11102,6 +11242,9 @@ var CloudformationSchema = `{ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11255,6 +11398,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppSync::DataSource.OpenSearchServiceConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { @@ -14878,6 +15037,9 @@ var CloudformationSchema = `{ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14908,6 +15070,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "changeableForDays": { + "type": "number" + }, + "maxRetentionDays": { + "type": "number" + }, + "minRetentionDays": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -39022,7 +39199,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayVpcAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -39054,107 +39231,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "InstanceTenancy": { - "type": "string" + "Options": { + "type": "object" }, - "Tags": { + "RemoveSubnetIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" - } - }, - "required": [ - "CidrBlock" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::VPC" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::VPCCidrBlock": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" }, - { + "SubnetIds": { "items": { - "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { - "type": "string" }, - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "Ipv6Pool": { + "TransitGatewayId": { "type": "string" }, "VpcId": { "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayVpcAttachment" ], "type": "string" }, @@ -39168,12 +39283,162 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::VPC": { + "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": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CidrBlock" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPC" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCCidrBlock": { + "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": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -44636,6 +44901,12 @@ var CloudformationSchema = `{ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44671,7 +44942,6 @@ var CloudformationSchema = `{ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57947,6 +58217,122 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::HealthLake::FHIRDatastore": { + "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": { + "DatastoreName": { + "type": "string" + }, + "DatastoreTypeVersion": { + "type": "string" + }, + "PreloadDataConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig" + }, + "SseConfiguration": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatastoreTypeVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::HealthLake::FHIRDatastore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig": { + "additionalProperties": false, + "properties": { + "CmkType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CmkType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": { + "additionalProperties": false, + "properties": { + "PreloadDataType": { + "type": "string" + } + }, + "required": [ + "PreloadDataType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.SseConfiguration": { + "additionalProperties": false, + "properties": { + "KmsEncryptionConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" + } + }, + "required": [ + "KmsEncryptionConfig" + ], + "type": "object" + }, "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { @@ -60089,9 +60475,6 @@ var CloudformationSchema = `{ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60180,9 +60563,6 @@ var CloudformationSchema = `{ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60233,7 +60613,7 @@ var CloudformationSchema = `{ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62444,6 +62824,9 @@ var CloudformationSchema = `{ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, "Republish": { "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" }, @@ -62858,6 +63241,34 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoT::TopicRule.OpenSearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": { "additionalProperties": false, "properties": { @@ -74599,6 +75010,9 @@ var CloudformationSchema = `{ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74825,10 +75239,25 @@ var CloudformationSchema = `{ "type": "string" }, "type": "array" + }, + "Enabled": { + "type": "boolean" } }, "type": "object" }, + "AWS::MSK::Cluster.Unauthenticated": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -80766,7 +81195,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBCluster": { + "AWS::MemoryDB::ACL": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80798,93 +81227,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { + "ACLName": { "type": "string" }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { - "type": "string" - }, - "SnapshotIdentifier": { - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { + "UserNames": { "items": { "type": "string" }, "type": "array" } }, + "required": [ + "ACLName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MemoryDB::ACL" ], "type": "string" }, @@ -80898,26 +81264,12 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster.DBClusterRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MemoryDB::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80949,17 +81301,80 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, "Description": { "type": "string" }, - "Family": { + "EngineVersion": { "type": "string" }, - "Name": { + "FinalSnapshotName": { "type": "string" }, - "Parameters": { - "type": "object" + "KmsKeyId": { + "type": "string" + }, + "MaintenanceWindow": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumReplicasPerShard": { + "type": "number" + }, + "NumShards": { + "type": "number" + }, + "ParameterGroupName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SnsTopicStatus": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "TLSEnabled": { + "type": "boolean" }, "Tags": { "items": { @@ -80969,15 +81384,13 @@ var CloudformationSchema = `{ } }, "required": [ - "Description", - "Family", - "Parameters" + "ClusterName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBClusterParameterGroup" + "AWS::MemoryDB::Cluster" ], "type": "string" }, @@ -80996,7 +81409,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBInstance": { + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81028,35 +81453,17 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "type": "string" - }, - "DBParameterGroupName": { + "Description": { "type": "string" }, - "DBSnapshotIdentifier": { + "Family": { "type": "string" }, - "DBSubnetGroupName": { + "ParameterGroupName": { "type": "string" }, - "PreferredMaintenanceWindow": { - "type": "string" + "Parameters": { + "type": "object" }, "Tags": { "items": { @@ -81066,13 +81473,13 @@ var CloudformationSchema = `{ } }, "required": [ - "DBInstanceClass" + "ParameterGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBInstance" + "AWS::MemoryDB::ParameterGroup" ], "type": "string" }, @@ -81091,7 +81498,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBParameterGroup": { + "AWS::MemoryDB::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81126,14 +81533,14 @@ var CloudformationSchema = `{ "Description": { "type": "string" }, - "Family": { - "type": "string" - }, - "Name": { + "SubnetGroupName": { "type": "string" }, - "Parameters": { - "type": "object" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { @@ -81143,15 +81550,13 @@ var CloudformationSchema = `{ } }, "required": [ - "Description", - "Family", - "Parameters" + "SubnetGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBParameterGroup" + "AWS::MemoryDB::SubnetGroup" ], "type": "string" }, @@ -81170,7 +81575,487 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBSubnetGroup": { + "AWS::MemoryDB::User": { + "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": { + "AccessString": { + "type": "string" + }, + "AuthenticationMode": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AccessString", + "AuthenticationMode", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "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": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBInstance": { + "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": { + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -83034,62 +83919,298 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" - }, - "Description": { - "type": "string" + "Configuration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" + }, + "Description": { + "type": "string" + }, + "Ec2SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InitializationScripts": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ScriptParameters": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" + }, + "type": "array" + }, + "StudioId": { + "type": "string" + }, + "Subtype": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "StudioId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::StudioComponent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "ComputerAttributes": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" + }, + "type": "array" + }, + "DirectoryId": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryUser": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "LinuxMountPoint": { + "type": "string" + }, + "ShareName": { + "type": "string" + }, + "WindowsMountDrive": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" + }, + "ComputeFarmConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" + }, + "LicenseServiceConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" + }, + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "additionalProperties": false, + "properties": { + "LaunchProfileProtocolVersion": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "RunContext": { + "type": "string" + }, + "Script": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain": { + "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": { + "AccessPolicies": { + "type": "object" }, - "Ec2SecurityGroupIds": { - "items": { - "type": "string" + "AdvancedOptions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "InitializationScripts": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" - }, - "type": "array" + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" }, - "Name": { - "type": "string" + "ClusterConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig" }, - "ScriptParameters": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" - }, - "type": "array" + "CognitoOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions" }, - "StudioId": { + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions" + }, + "DomainName": { "type": "string" }, - "Subtype": { + "EBSOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions" + }, + "EngineVersion": { "type": "string" }, - "Tags": { - "additionalProperties": true, + "LogPublishingOptions": { + "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" } }, "type": "object" }, - "Type": { - "type": "string" + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions" } }, - "required": [ - "Name", - "StudioId", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::NimbleStudio::StudioComponent" + "AWS::OpenSearchService::Domain" ], "type": "string" }, @@ -83103,127 +84224,198 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { - "Name": { + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { "type": "string" }, - "Value": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "AWS::OpenSearchService::Domain.CognitoOptions": { "additionalProperties": false, "properties": { - "ComputerAttributes": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" - }, - "type": "array" + "Enabled": { + "type": "boolean" }, - "DirectoryId": { + "IdentityPoolId": { "type": "string" }, - "OrganizationalUnitDistinguishedName": { + "RoleArn": { + "type": "string" + }, + "UserPoolId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "AWS::OpenSearchService::Domain.DomainEndpointOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryUser": { + "CustomEndpoint": { "type": "string" }, - "Endpoint": { + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "AWS::OpenSearchService::Domain.EBSOptions": { "additionalProperties": false, "properties": { - "Endpoint": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "Value": { + "KmsKeyId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "AWS::OpenSearchService::Domain.LogPublishingOption": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" - }, - "FileSystemId": { + "CloudWatchLogsLogGroupArn": { "type": "string" }, - "LinuxMountPoint": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { "type": "string" }, - "ShareName": { + "MasterUserName": { "type": "string" }, - "WindowsMountDrive": { + "MasterUserPassword": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" - }, - "ComputeFarmConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" - }, - "LicenseServiceConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" - }, - "SharedFileSystemConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + "Enabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "AWS::OpenSearchService::Domain.SnapshotOptions": { "additionalProperties": false, "properties": { - "LaunchProfileProtocolVersion": { - "type": "string" - }, - "Platform": { - "type": "string" - }, - "RunContext": { - "type": "string" + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Script": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "number" } }, "type": "object" @@ -92050,6 +93242,9 @@ var CloudformationSchema = `{ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92079,10 +93274,8 @@ var CloudformationSchema = `{ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94907,6 +96100,9 @@ var CloudformationSchema = `{ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97681,6 +98877,9 @@ var CloudformationSchema = `{ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -111614,6 +112813,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -112418,6 +113623,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -112826,6 +114034,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -113249,6 +114460,21 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::MediaStore::Container" }, + { + "$ref": "#/definitions/AWS::MemoryDB::ACL" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::Cluster" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::User" + }, { "$ref": "#/definitions/AWS::Neptune::DBCluster" }, @@ -113309,6 +114535,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OpenSearchService::Domain" + }, { "$ref": "#/definitions/AWS::OpsWorks::App" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 2f9d001eff..2ae067dbca 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -733,6 +733,146 @@ ], "type": "object" }, + "AWS::ACMPCA::Permission": { + "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": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + } + }, + "required": [ + "Actions", + "CertificateAuthorityArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::APS::Workspace": { + "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": { + "Alias": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::AccessAnalyzer::Analyzer": { "additionalProperties": false, "properties": { @@ -11099,6 +11239,9 @@ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11252,6 +11395,22 @@ ], "type": "object" }, + "AWS::AppSync::DataSource.OpenSearchServiceConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { @@ -14875,6 +15034,9 @@ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14905,6 +15067,21 @@ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "changeableForDays": { + "type": "number" + }, + "maxRetentionDays": { + "type": "number" + }, + "minRetentionDays": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -39019,7 +39196,7 @@ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayVpcAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -39051,107 +39228,45 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "InstanceTenancy": { - "type": "string" + "Options": { + "type": "object" }, - "Tags": { + "RemoveSubnetIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" - } - }, - "required": [ - "CidrBlock" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::VPC" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::VPCCidrBlock": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" }, - { + "SubnetIds": { "items": { - "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { - "type": "string" }, - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "Ipv6Pool": { + "TransitGatewayId": { "type": "string" }, "VpcId": { "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayVpcAttachment" ], "type": "string" }, @@ -39165,12 +39280,162 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::VPC": { + "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": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CidrBlock" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPC" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCCidrBlock": { + "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": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -44633,6 +44898,12 @@ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44668,7 +44939,6 @@ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57944,6 +58214,122 @@ ], "type": "object" }, + "AWS::HealthLake::FHIRDatastore": { + "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": { + "DatastoreName": { + "type": "string" + }, + "DatastoreTypeVersion": { + "type": "string" + }, + "PreloadDataConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig" + }, + "SseConfiguration": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatastoreTypeVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::HealthLake::FHIRDatastore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig": { + "additionalProperties": false, + "properties": { + "CmkType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CmkType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": { + "additionalProperties": false, + "properties": { + "PreloadDataType": { + "type": "string" + } + }, + "required": [ + "PreloadDataType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.SseConfiguration": { + "additionalProperties": false, + "properties": { + "KmsEncryptionConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" + } + }, + "required": [ + "KmsEncryptionConfig" + ], + "type": "object" + }, "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { @@ -60086,9 +60472,6 @@ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60177,9 +60560,6 @@ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60230,7 +60610,7 @@ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62441,6 +62821,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, "Republish": { "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" }, @@ -62855,6 +63238,34 @@ }, "type": "object" }, + "AWS::IoT::TopicRule.OpenSearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": { "additionalProperties": false, "properties": { @@ -74596,6 +75007,9 @@ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74822,10 +75236,25 @@ "type": "string" }, "type": "array" + }, + "Enabled": { + "type": "boolean" } }, "type": "object" }, + "AWS::MSK::Cluster.Unauthenticated": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -80763,7 +81192,7 @@ ], "type": "object" }, - "AWS::Neptune::DBCluster": { + "AWS::MemoryDB::ACL": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80795,93 +81224,30 @@ "Properties": { "additionalProperties": false, "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { + "ACLName": { "type": "string" }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { - "type": "string" - }, - "SnapshotIdentifier": { - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { + "UserNames": { "items": { "type": "string" }, "type": "array" } }, + "required": [ + "ACLName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MemoryDB::ACL" ], "type": "string" }, @@ -80895,26 +81261,12 @@ } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster.DBClusterRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MemoryDB::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80946,17 +81298,80 @@ "Properties": { "additionalProperties": false, "properties": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, "Description": { "type": "string" }, - "Family": { + "EngineVersion": { "type": "string" }, - "Name": { + "FinalSnapshotName": { "type": "string" }, - "Parameters": { - "type": "object" + "KmsKeyId": { + "type": "string" + }, + "MaintenanceWindow": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumReplicasPerShard": { + "type": "number" + }, + "NumShards": { + "type": "number" + }, + "ParameterGroupName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SnsTopicStatus": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "TLSEnabled": { + "type": "boolean" }, "Tags": { "items": { @@ -80966,15 +81381,13 @@ } }, "required": [ - "Description", - "Family", - "Parameters" + "ClusterName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBClusterParameterGroup" + "AWS::MemoryDB::Cluster" ], "type": "string" }, @@ -80993,7 +81406,19 @@ ], "type": "object" }, - "AWS::Neptune::DBInstance": { + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81025,35 +81450,17 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "type": "string" - }, - "DBParameterGroupName": { + "Description": { "type": "string" }, - "DBSnapshotIdentifier": { + "Family": { "type": "string" }, - "DBSubnetGroupName": { + "ParameterGroupName": { "type": "string" }, - "PreferredMaintenanceWindow": { - "type": "string" + "Parameters": { + "type": "object" }, "Tags": { "items": { @@ -81063,13 +81470,13 @@ } }, "required": [ - "DBInstanceClass" + "ParameterGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBInstance" + "AWS::MemoryDB::ParameterGroup" ], "type": "string" }, @@ -81088,7 +81495,7 @@ ], "type": "object" }, - "AWS::Neptune::DBParameterGroup": { + "AWS::MemoryDB::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81123,14 +81530,14 @@ "Description": { "type": "string" }, - "Family": { - "type": "string" - }, - "Name": { + "SubnetGroupName": { "type": "string" }, - "Parameters": { - "type": "object" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { @@ -81140,15 +81547,13 @@ } }, "required": [ - "Description", - "Family", - "Parameters" + "SubnetGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBParameterGroup" + "AWS::MemoryDB::SubnetGroup" ], "type": "string" }, @@ -81167,7 +81572,487 @@ ], "type": "object" }, - "AWS::Neptune::DBSubnetGroup": { + "AWS::MemoryDB::User": { + "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": { + "AccessString": { + "type": "string" + }, + "AuthenticationMode": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AccessString", + "AuthenticationMode", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "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": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBInstance": { + "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": { + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -83031,62 +83916,298 @@ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" - }, - "Description": { - "type": "string" + "Configuration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" + }, + "Description": { + "type": "string" + }, + "Ec2SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InitializationScripts": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ScriptParameters": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" + }, + "type": "array" + }, + "StudioId": { + "type": "string" + }, + "Subtype": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "StudioId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::StudioComponent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "ComputerAttributes": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" + }, + "type": "array" + }, + "DirectoryId": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryUser": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "LinuxMountPoint": { + "type": "string" + }, + "ShareName": { + "type": "string" + }, + "WindowsMountDrive": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" + }, + "ComputeFarmConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" + }, + "LicenseServiceConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" + }, + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "additionalProperties": false, + "properties": { + "LaunchProfileProtocolVersion": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "RunContext": { + "type": "string" + }, + "Script": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain": { + "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": { + "AccessPolicies": { + "type": "object" }, - "Ec2SecurityGroupIds": { - "items": { - "type": "string" + "AdvancedOptions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "InitializationScripts": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" - }, - "type": "array" + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" }, - "Name": { - "type": "string" + "ClusterConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig" }, - "ScriptParameters": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" - }, - "type": "array" + "CognitoOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions" }, - "StudioId": { + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions" + }, + "DomainName": { "type": "string" }, - "Subtype": { + "EBSOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions" + }, + "EngineVersion": { "type": "string" }, - "Tags": { - "additionalProperties": true, + "LogPublishingOptions": { + "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" } }, "type": "object" }, - "Type": { - "type": "string" + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions" } }, - "required": [ - "Name", - "StudioId", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::NimbleStudio::StudioComponent" + "AWS::OpenSearchService::Domain" ], "type": "string" }, @@ -83100,127 +84221,198 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { - "Name": { + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { "type": "string" }, - "Value": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "AWS::OpenSearchService::Domain.CognitoOptions": { "additionalProperties": false, "properties": { - "ComputerAttributes": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" - }, - "type": "array" + "Enabled": { + "type": "boolean" }, - "DirectoryId": { + "IdentityPoolId": { "type": "string" }, - "OrganizationalUnitDistinguishedName": { + "RoleArn": { + "type": "string" + }, + "UserPoolId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "AWS::OpenSearchService::Domain.DomainEndpointOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryUser": { + "CustomEndpoint": { "type": "string" }, - "Endpoint": { + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "AWS::OpenSearchService::Domain.EBSOptions": { "additionalProperties": false, "properties": { - "Endpoint": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "Value": { + "KmsKeyId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "AWS::OpenSearchService::Domain.LogPublishingOption": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" - }, - "FileSystemId": { + "CloudWatchLogsLogGroupArn": { "type": "string" }, - "LinuxMountPoint": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { "type": "string" }, - "ShareName": { + "MasterUserName": { "type": "string" }, - "WindowsMountDrive": { + "MasterUserPassword": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" - }, - "ComputeFarmConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" - }, - "LicenseServiceConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" - }, - "SharedFileSystemConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + "Enabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "AWS::OpenSearchService::Domain.SnapshotOptions": { "additionalProperties": false, "properties": { - "LaunchProfileProtocolVersion": { - "type": "string" - }, - "Platform": { - "type": "string" - }, - "RunContext": { - "type": "string" + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Script": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "number" } }, "type": "object" @@ -92047,6 +93239,9 @@ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92076,10 +93271,8 @@ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94904,6 +96097,9 @@ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97678,6 +98874,9 @@ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -111611,6 +112810,12 @@ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -112415,6 +113620,9 @@ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -112823,6 +114031,9 @@ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -113246,6 +114457,21 @@ { "$ref": "#/definitions/AWS::MediaStore::Container" }, + { + "$ref": "#/definitions/AWS::MemoryDB::ACL" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::Cluster" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::User" + }, { "$ref": "#/definitions/AWS::Neptune::DBCluster" }, @@ -113306,6 +114532,9 @@ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OpenSearchService::Domain" + }, { "$ref": "#/definitions/AWS::OpsWorks::App" }, diff --git a/schema/sam.go b/schema/sam.go index 490979694d..72e96e7b23 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -736,6 +736,146 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::ACMPCA::Permission": { + "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": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + } + }, + "required": [ + "Actions", + "CertificateAuthorityArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::APS::Workspace": { + "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": { + "Alias": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::AccessAnalyzer::Analyzer": { "additionalProperties": false, "properties": { @@ -11102,6 +11242,9 @@ var SamSchema = `{ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11255,6 +11398,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppSync::DataSource.OpenSearchServiceConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { @@ -14878,6 +15037,9 @@ var SamSchema = `{ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14908,6 +15070,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "changeableForDays": { + "type": "number" + }, + "maxRetentionDays": { + "type": "number" + }, + "minRetentionDays": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -39022,7 +39199,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayVpcAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -39054,107 +39231,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "InstanceTenancy": { - "type": "string" + "Options": { + "type": "object" }, - "Tags": { + "RemoveSubnetIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" - } - }, - "required": [ - "CidrBlock" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::VPC" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::VPCCidrBlock": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" }, - { + "SubnetIds": { "items": { - "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { - "type": "string" }, - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "Ipv6Pool": { + "TransitGatewayId": { "type": "string" }, "VpcId": { "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayVpcAttachment" ], "type": "string" }, @@ -39168,12 +39283,162 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::VPC": { + "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": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CidrBlock" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPC" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCCidrBlock": { + "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": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -44636,6 +44901,12 @@ var SamSchema = `{ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44671,7 +44942,6 @@ var SamSchema = `{ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57947,6 +58217,122 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::HealthLake::FHIRDatastore": { + "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": { + "DatastoreName": { + "type": "string" + }, + "DatastoreTypeVersion": { + "type": "string" + }, + "PreloadDataConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig" + }, + "SseConfiguration": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatastoreTypeVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::HealthLake::FHIRDatastore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig": { + "additionalProperties": false, + "properties": { + "CmkType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CmkType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": { + "additionalProperties": false, + "properties": { + "PreloadDataType": { + "type": "string" + } + }, + "required": [ + "PreloadDataType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.SseConfiguration": { + "additionalProperties": false, + "properties": { + "KmsEncryptionConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" + } + }, + "required": [ + "KmsEncryptionConfig" + ], + "type": "object" + }, "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { @@ -60089,9 +60475,6 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60180,9 +60563,6 @@ var SamSchema = `{ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60233,7 +60613,7 @@ var SamSchema = `{ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62444,6 +62824,9 @@ var SamSchema = `{ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, "Republish": { "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" }, @@ -62858,6 +63241,34 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoT::TopicRule.OpenSearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": { "additionalProperties": false, "properties": { @@ -74599,6 +75010,9 @@ var SamSchema = `{ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74825,10 +75239,25 @@ var SamSchema = `{ "type": "string" }, "type": "array" + }, + "Enabled": { + "type": "boolean" } }, "type": "object" }, + "AWS::MSK::Cluster.Unauthenticated": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -80766,7 +81195,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBCluster": { + "AWS::MemoryDB::ACL": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80798,93 +81227,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { + "ACLName": { "type": "string" }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { - "type": "string" - }, - "SnapshotIdentifier": { - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { + "UserNames": { "items": { "type": "string" }, "type": "array" } }, + "required": [ + "ACLName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MemoryDB::ACL" ], "type": "string" }, @@ -80898,26 +81264,12 @@ var SamSchema = `{ } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster.DBClusterRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MemoryDB::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80949,17 +81301,80 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, "Description": { "type": "string" }, - "Family": { + "EngineVersion": { "type": "string" }, - "Name": { + "FinalSnapshotName": { "type": "string" }, - "Parameters": { - "type": "object" + "KmsKeyId": { + "type": "string" + }, + "MaintenanceWindow": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumReplicasPerShard": { + "type": "number" + }, + "NumShards": { + "type": "number" + }, + "ParameterGroupName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SnsTopicStatus": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "TLSEnabled": { + "type": "boolean" }, "Tags": { "items": { @@ -80969,15 +81384,13 @@ var SamSchema = `{ } }, "required": [ - "Description", - "Family", - "Parameters" + "ClusterName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBClusterParameterGroup" + "AWS::MemoryDB::Cluster" ], "type": "string" }, @@ -80996,7 +81409,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBInstance": { + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81028,35 +81453,17 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "type": "string" - }, - "DBParameterGroupName": { + "Description": { "type": "string" }, - "DBSnapshotIdentifier": { + "Family": { "type": "string" }, - "DBSubnetGroupName": { + "ParameterGroupName": { "type": "string" }, - "PreferredMaintenanceWindow": { - "type": "string" + "Parameters": { + "type": "object" }, "Tags": { "items": { @@ -81066,13 +81473,13 @@ var SamSchema = `{ } }, "required": [ - "DBInstanceClass" + "ParameterGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBInstance" + "AWS::MemoryDB::ParameterGroup" ], "type": "string" }, @@ -81091,7 +81498,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBParameterGroup": { + "AWS::MemoryDB::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81126,14 +81533,14 @@ var SamSchema = `{ "Description": { "type": "string" }, - "Family": { - "type": "string" - }, - "Name": { + "SubnetGroupName": { "type": "string" }, - "Parameters": { - "type": "object" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { @@ -81143,15 +81550,13 @@ var SamSchema = `{ } }, "required": [ - "Description", - "Family", - "Parameters" + "SubnetGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBParameterGroup" + "AWS::MemoryDB::SubnetGroup" ], "type": "string" }, @@ -81170,7 +81575,487 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Neptune::DBSubnetGroup": { + "AWS::MemoryDB::User": { + "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": { + "AccessString": { + "type": "string" + }, + "AuthenticationMode": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AccessString", + "AuthenticationMode", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "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": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBInstance": { + "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": { + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -83034,62 +83919,298 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" - }, - "Description": { - "type": "string" + "Configuration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" + }, + "Description": { + "type": "string" + }, + "Ec2SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InitializationScripts": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ScriptParameters": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" + }, + "type": "array" + }, + "StudioId": { + "type": "string" + }, + "Subtype": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "StudioId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::StudioComponent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "ComputerAttributes": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" + }, + "type": "array" + }, + "DirectoryId": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryUser": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "LinuxMountPoint": { + "type": "string" + }, + "ShareName": { + "type": "string" + }, + "WindowsMountDrive": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" + }, + "ComputeFarmConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" + }, + "LicenseServiceConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" + }, + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "additionalProperties": false, + "properties": { + "LaunchProfileProtocolVersion": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "RunContext": { + "type": "string" + }, + "Script": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain": { + "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": { + "AccessPolicies": { + "type": "object" }, - "Ec2SecurityGroupIds": { - "items": { - "type": "string" + "AdvancedOptions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "InitializationScripts": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" - }, - "type": "array" + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" }, - "Name": { - "type": "string" + "ClusterConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig" }, - "ScriptParameters": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" - }, - "type": "array" + "CognitoOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions" }, - "StudioId": { + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions" + }, + "DomainName": { "type": "string" }, - "Subtype": { + "EBSOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions" + }, + "EngineVersion": { "type": "string" }, - "Tags": { - "additionalProperties": true, + "LogPublishingOptions": { + "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" } }, "type": "object" }, - "Type": { - "type": "string" + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions" } }, - "required": [ - "Name", - "StudioId", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::NimbleStudio::StudioComponent" + "AWS::OpenSearchService::Domain" ], "type": "string" }, @@ -83103,127 +84224,198 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { - "Name": { + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { "type": "string" }, - "Value": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "AWS::OpenSearchService::Domain.CognitoOptions": { "additionalProperties": false, "properties": { - "ComputerAttributes": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" - }, - "type": "array" + "Enabled": { + "type": "boolean" }, - "DirectoryId": { + "IdentityPoolId": { "type": "string" }, - "OrganizationalUnitDistinguishedName": { + "RoleArn": { + "type": "string" + }, + "UserPoolId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "AWS::OpenSearchService::Domain.DomainEndpointOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryUser": { + "CustomEndpoint": { "type": "string" }, - "Endpoint": { + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "AWS::OpenSearchService::Domain.EBSOptions": { "additionalProperties": false, "properties": { - "Endpoint": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "Value": { + "KmsKeyId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "AWS::OpenSearchService::Domain.LogPublishingOption": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" - }, - "FileSystemId": { + "CloudWatchLogsLogGroupArn": { "type": "string" }, - "LinuxMountPoint": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { "type": "string" }, - "ShareName": { + "MasterUserName": { "type": "string" }, - "WindowsMountDrive": { + "MasterUserPassword": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" - }, - "ComputeFarmConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" - }, - "LicenseServiceConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" - }, - "SharedFileSystemConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + "Enabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "AWS::OpenSearchService::Domain.SnapshotOptions": { "additionalProperties": false, "properties": { - "LaunchProfileProtocolVersion": { - "type": "string" - }, - "Platform": { - "type": "string" - }, - "RunContext": { - "type": "string" + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Script": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "number" } }, "type": "object" @@ -92050,6 +93242,9 @@ var SamSchema = `{ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92079,10 +93274,8 @@ var SamSchema = `{ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94907,6 +96100,9 @@ var SamSchema = `{ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97681,6 +98877,9 @@ var SamSchema = `{ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -114268,6 +115467,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -115072,6 +116277,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -115480,6 +116688,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -115903,6 +117114,21 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::MediaStore::Container" }, + { + "$ref": "#/definitions/AWS::MemoryDB::ACL" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::Cluster" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::User" + }, { "$ref": "#/definitions/AWS::Neptune::DBCluster" }, @@ -115963,6 +117189,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OpenSearchService::Domain" + }, { "$ref": "#/definitions/AWS::OpsWorks::App" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 29fa680441..b0f0271025 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -733,6 +733,146 @@ ], "type": "object" }, + "AWS::ACMPCA::Permission": { + "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": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + } + }, + "required": [ + "Actions", + "CertificateAuthorityArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::APS::Workspace": { + "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": { + "Alias": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::AccessAnalyzer::Analyzer": { "additionalProperties": false, "properties": { @@ -11099,6 +11239,9 @@ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11252,6 +11395,22 @@ ], "type": "object" }, + "AWS::AppSync::DataSource.OpenSearchServiceConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { "additionalProperties": false, "properties": { @@ -14875,6 +15034,9 @@ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14905,6 +15067,21 @@ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "changeableForDays": { + "type": "number" + }, + "maxRetentionDays": { + "type": "number" + }, + "minRetentionDays": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -39019,7 +39196,7 @@ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayVpcAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -39051,107 +39228,45 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "InstanceTenancy": { - "type": "string" + "Options": { + "type": "object" }, - "Tags": { + "RemoveSubnetIds": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" - } - }, - "required": [ - "CidrBlock" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::VPC" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::VPCCidrBlock": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" }, - { + "SubnetIds": { "items": { - "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { - "type": "string" }, - "Ipv6CidrBlock": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "Ipv6Pool": { + "TransitGatewayId": { "type": "string" }, "VpcId": { "type": "string" } }, - "required": [ - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayVpcAttachment" ], "type": "string" }, @@ -39165,12 +39280,162 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::VPC": { + "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": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CidrBlock" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPC" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCCidrBlock": { + "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": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -44633,6 +44898,12 @@ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44668,7 +44939,6 @@ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57944,6 +58214,122 @@ ], "type": "object" }, + "AWS::HealthLake::FHIRDatastore": { + "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": { + "DatastoreName": { + "type": "string" + }, + "DatastoreTypeVersion": { + "type": "string" + }, + "PreloadDataConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig" + }, + "SseConfiguration": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatastoreTypeVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::HealthLake::FHIRDatastore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig": { + "additionalProperties": false, + "properties": { + "CmkType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CmkType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": { + "additionalProperties": false, + "properties": { + "PreloadDataType": { + "type": "string" + } + }, + "required": [ + "PreloadDataType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.SseConfiguration": { + "additionalProperties": false, + "properties": { + "KmsEncryptionConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" + } + }, + "required": [ + "KmsEncryptionConfig" + ], + "type": "object" + }, "AWS::IAM::AccessKey": { "additionalProperties": false, "properties": { @@ -60086,9 +60472,6 @@ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60177,9 +60560,6 @@ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60230,7 +60610,7 @@ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62441,6 +62821,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, "Republish": { "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" }, @@ -62855,6 +63238,34 @@ }, "type": "object" }, + "AWS::IoT::TopicRule.OpenSearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": { "additionalProperties": false, "properties": { @@ -74596,6 +75007,9 @@ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74822,10 +75236,25 @@ "type": "string" }, "type": "array" + }, + "Enabled": { + "type": "boolean" } }, "type": "object" }, + "AWS::MSK::Cluster.Unauthenticated": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -80763,7 +81192,7 @@ ], "type": "object" }, - "AWS::Neptune::DBCluster": { + "AWS::MemoryDB::ACL": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80795,93 +81224,30 @@ "Properties": { "additionalProperties": false, "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { + "ACLName": { "type": "string" }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { - "type": "string" - }, - "SnapshotIdentifier": { - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { + "UserNames": { "items": { "type": "string" }, "type": "array" } }, + "required": [ + "ACLName" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MemoryDB::ACL" ], "type": "string" }, @@ -80895,26 +81261,12 @@ } }, "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster.DBClusterRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "RoleArn" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MemoryDB::Cluster": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -80946,17 +81298,80 @@ "Properties": { "additionalProperties": false, "properties": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, "Description": { "type": "string" }, - "Family": { + "EngineVersion": { "type": "string" }, - "Name": { + "FinalSnapshotName": { "type": "string" }, - "Parameters": { - "type": "object" + "KmsKeyId": { + "type": "string" + }, + "MaintenanceWindow": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumReplicasPerShard": { + "type": "number" + }, + "NumShards": { + "type": "number" + }, + "ParameterGroupName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SnsTopicStatus": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "TLSEnabled": { + "type": "boolean" }, "Tags": { "items": { @@ -80966,15 +81381,13 @@ } }, "required": [ - "Description", - "Family", - "Parameters" + "ClusterName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBClusterParameterGroup" + "AWS::MemoryDB::Cluster" ], "type": "string" }, @@ -80993,7 +81406,19 @@ ], "type": "object" }, - "AWS::Neptune::DBInstance": { + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81025,35 +81450,17 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "type": "string" - }, - "DBParameterGroupName": { + "Description": { "type": "string" }, - "DBSnapshotIdentifier": { + "Family": { "type": "string" }, - "DBSubnetGroupName": { + "ParameterGroupName": { "type": "string" }, - "PreferredMaintenanceWindow": { - "type": "string" + "Parameters": { + "type": "object" }, "Tags": { "items": { @@ -81063,13 +81470,13 @@ } }, "required": [ - "DBInstanceClass" + "ParameterGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBInstance" + "AWS::MemoryDB::ParameterGroup" ], "type": "string" }, @@ -81088,7 +81495,7 @@ ], "type": "object" }, - "AWS::Neptune::DBParameterGroup": { + "AWS::MemoryDB::SubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -81123,14 +81530,14 @@ "Description": { "type": "string" }, - "Family": { - "type": "string" - }, - "Name": { + "SubnetGroupName": { "type": "string" }, - "Parameters": { - "type": "object" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" }, "Tags": { "items": { @@ -81140,15 +81547,13 @@ } }, "required": [ - "Description", - "Family", - "Parameters" + "SubnetGroupName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBParameterGroup" + "AWS::MemoryDB::SubnetGroup" ], "type": "string" }, @@ -81167,7 +81572,487 @@ ], "type": "object" }, - "AWS::Neptune::DBSubnetGroup": { + "AWS::MemoryDB::User": { + "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": { + "AccessString": { + "type": "string" + }, + "AuthenticationMode": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AccessString", + "AuthenticationMode", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "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": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBInstance": { + "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": { + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBParameterGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBSubnetGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -83031,62 +83916,298 @@ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" - }, - "Description": { - "type": "string" + "Configuration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" + }, + "Description": { + "type": "string" + }, + "Ec2SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InitializationScripts": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ScriptParameters": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" + }, + "type": "array" + }, + "StudioId": { + "type": "string" + }, + "Subtype": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "StudioId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::StudioComponent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "ComputerAttributes": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" + }, + "type": "array" + }, + "DirectoryId": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryUser": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "LinuxMountPoint": { + "type": "string" + }, + "ShareName": { + "type": "string" + }, + "WindowsMountDrive": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" + }, + "ComputeFarmConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" + }, + "LicenseServiceConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" + }, + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "additionalProperties": false, + "properties": { + "LaunchProfileProtocolVersion": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "RunContext": { + "type": "string" + }, + "Script": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain": { + "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": { + "AccessPolicies": { + "type": "object" }, - "Ec2SecurityGroupIds": { - "items": { - "type": "string" + "AdvancedOptions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "InitializationScripts": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" - }, - "type": "array" + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" }, - "Name": { - "type": "string" + "ClusterConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig" }, - "ScriptParameters": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" - }, - "type": "array" + "CognitoOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions" }, - "StudioId": { + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions" + }, + "DomainName": { "type": "string" }, - "Subtype": { + "EBSOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions" + }, + "EngineVersion": { "type": "string" }, - "Tags": { - "additionalProperties": true, + "LogPublishingOptions": { + "additionalProperties": false, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" } }, "type": "object" }, - "Type": { - "type": "string" + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions" } }, - "required": [ - "Name", - "StudioId", - "Type" - ], "type": "object" }, "Type": { "enum": [ - "AWS::NimbleStudio::StudioComponent" + "AWS::OpenSearchService::Domain" ], "type": "string" }, @@ -83100,127 +84221,198 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { - "Name": { + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { "type": "string" }, - "Value": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "AWS::OpenSearchService::Domain.CognitoOptions": { "additionalProperties": false, "properties": { - "ComputerAttributes": { - "items": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" - }, - "type": "array" + "Enabled": { + "type": "boolean" }, - "DirectoryId": { + "IdentityPoolId": { "type": "string" }, - "OrganizationalUnitDistinguishedName": { + "RoleArn": { + "type": "string" + }, + "UserPoolId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "AWS::OpenSearchService::Domain.DomainEndpointOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryUser": { + "CustomEndpoint": { "type": "string" }, - "Endpoint": { + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "AWS::OpenSearchService::Domain.EBSOptions": { "additionalProperties": false, "properties": { - "Endpoint": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": { "additionalProperties": false, "properties": { - "Key": { - "type": "string" + "Enabled": { + "type": "boolean" }, - "Value": { + "KmsKeyId": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "AWS::OpenSearchService::Domain.LogPublishingOption": { "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string" - }, - "FileSystemId": { + "CloudWatchLogsLogGroupArn": { "type": "string" }, - "LinuxMountPoint": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { "type": "string" }, - "ShareName": { + "MasterUserName": { "type": "string" }, - "WindowsMountDrive": { + "MasterUserPassword": { "type": "string" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": { "additionalProperties": false, "properties": { - "ActiveDirectoryConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" - }, - "ComputeFarmConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" - }, - "LicenseServiceConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" - }, - "SharedFileSystemConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + "Enabled": { + "type": "boolean" } }, "type": "object" }, - "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "AWS::OpenSearchService::Domain.SnapshotOptions": { "additionalProperties": false, "properties": { - "LaunchProfileProtocolVersion": { - "type": "string" - }, - "Platform": { - "type": "string" - }, - "RunContext": { - "type": "string" + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "Script": { - "type": "string" + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "number" } }, "type": "object" @@ -92047,6 +93239,9 @@ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92076,10 +93271,8 @@ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94904,6 +96097,9 @@ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97678,6 +98874,9 @@ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -114265,6 +115464,12 @@ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -115069,6 +116274,9 @@ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -115477,6 +116685,9 @@ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -115900,6 +117111,21 @@ { "$ref": "#/definitions/AWS::MediaStore::Container" }, + { + "$ref": "#/definitions/AWS::MemoryDB::ACL" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::Cluster" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::User" + }, { "$ref": "#/definitions/AWS::Neptune::DBCluster" }, @@ -115960,6 +117186,9 @@ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OpenSearchService::Domain" + }, { "$ref": "#/definitions/AWS::OpsWorks::App" },