From fa89e2381d69c66fb93496ab35b57a8f52772323 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 5 Oct 2021 16:03:27 +0400 Subject: [PATCH] fix(schema): CloudFormation Updates (#401) Co-authored-by: Paul Maddox --- .../acmpca/aws-acmpca-permission.go | 121 + cloudformation/all.go | 380 ++ .../appsync/aws-appsync-datasource.go | 5 + ...sync-datasource_opensearchserviceconfig.go | 40 + .../aps/aws-aps-rulegroupsnamespace.go | 122 + cloudformation/aps/aws-aps-workspace.go | 117 + .../backup/aws-backup-backupvault.go | 5 + ...ackup-backupvault_lockconfigurationtype.go | 45 + cloudformation/backup/aws-backup-framework.go | 122 + ...-backup-framework_controlinputparameter.go | 40 + .../aws-backup-framework_frameworkcontrol.go | 45 + .../backup/aws-backup-reportplan.go | 127 + ...aws-ec2-launchtemplate_acceleratorcount.go | 40 + ...aunchtemplate_acceleratortotalmemorymib.go | 40 + ...launchtemplate_baselineebsbandwidthmbps.go | 40 + ...aws-ec2-launchtemplate_memorygibpervcpu.go | 40 + .../ec2/aws-ec2-launchtemplate_memorymib.go | 40 + .../aws-ec2-launchtemplate_metadataoptions.go | 5 + ...c2-launchtemplate_networkinterfacecount.go | 40 + ...-ec2-launchtemplate_totallocalstoragegb.go | 40 + .../ec2/aws-ec2-launchtemplate_vcpucount.go | 40 + .../aws-ec2-transitgatewayvpcattachment.go | 137 + ...eplicationconfiguration_replicationrule.go | 5 + ...plicationconfiguration_repositoryfilter.go | 40 + 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 + ...ndra-datasource_datasourceconfiguration.go | 10 + ...ws-kendra-datasource_proxyconfiguration.go | 45 + ...ndra-datasource_servicenowconfiguration.go | 5 + ...servicenowknowledgearticleconfiguration.go | 5 + ...ndra-datasource_sharepointconfiguration.go | 5 + ...e_webcrawlerauthenticationconfiguration.go | 35 + ...atasource_webcrawlerbasicauthentication.go | 45 + ...ndra-datasource_webcrawlerconfiguration.go | 75 + ...tasource_webcrawlerseedurlconfiguration.go | 40 + ...asource_webcrawlersitemapsconfiguration.go | 35 + .../aws-kendra-datasource_webcrawlerurls.go | 40 + ...kendra-datasource_workdocsconfiguration.go | 60 + .../aws-kinesisfirehose-deliverystream.go | 5 + ...m_amazonopensearchservicebufferinghints.go | 40 + ...ensearchservicedestinationconfiguration.go | 95 + ...eam_amazonopensearchserviceretryoptions.go | 35 + cloudformation/lambda/aws-lambda-function.go | 5 + .../lambda/aws-lambda-layerversion.go | 5 + .../lightsail/aws-lightsail-disk.go | 127 + .../lightsail/aws-lightsail-disk_addon.go | 45 + .../aws-lightsail-disk_autosnapshotaddon.go | 35 + .../lightsail/aws-lightsail-instance.go | 152 + .../lightsail/aws-lightsail-instance_addon.go | 45 + ...ws-lightsail-instance_autosnapshotaddon.go | 35 + .../lightsail/aws-lightsail-instance_disk.go | 65 + .../aws-lightsail-instance_hardware.go | 45 + .../aws-lightsail-instance_location.go | 40 + .../aws-lightsail-instance_monthlytransfer.go | 35 + .../aws-lightsail-instance_networking.go | 40 + .../lightsail/aws-lightsail-instance_port.go | 80 + .../lightsail/aws-lightsail-instance_state.go | 40 + .../aws-mediaconnect-flow_encryption.go | 2 +- .../aws-mediaconnect-flow_source.go | 10 + .../aws-mediaconnect-flowoutput.go | 5 + .../aws-mediaconnect-flowoutput_encryption.go | 2 +- 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 + cloudformation/sqs/aws-sqs-queuepolicy.go | 6 +- .../ssm/aws-ssm-maintenancewindowtask.go | 5 + schema/cloudformation.go | 3242 ++++++++++++++--- schema/cloudformation.schema.json | 3242 ++++++++++++++--- schema/sam.go | 3242 ++++++++++++++--- schema/sam.schema.json | 3242 ++++++++++++++--- 100 files changed, 16005 insertions(+), 1896 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-rulegroupsnamespace.go create mode 100644 cloudformation/aps/aws-aps-workspace.go create mode 100644 cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go create mode 100644 cloudformation/backup/aws-backup-framework.go create mode 100644 cloudformation/backup/aws-backup-framework_controlinputparameter.go create mode 100644 cloudformation/backup/aws-backup-framework_frameworkcontrol.go create mode 100644 cloudformation/backup/aws-backup-reportplan.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_acceleratorcount.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go create mode 100644 cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go create mode 100644 cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go create mode 100644 cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.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/kendra/aws-kendra-datasource_proxyconfiguration.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go create mode 100644 cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go create mode 100644 cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go create mode 100644 cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go create mode 100644 cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go create mode 100644 cloudformation/lightsail/aws-lightsail-disk.go create mode 100644 cloudformation/lightsail/aws-lightsail-disk_addon.go create mode 100644 cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_addon.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_disk.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_hardware.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_location.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_networking.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_port.go create mode 100644 cloudformation/lightsail/aws-lightsail-instance_state.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..567ff144d7 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" @@ -108,6 +110,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/lakeformation" "github.com/awslabs/goformation/v5/cloudformation/lambda" "github.com/awslabs/goformation/v5/cloudformation/licensemanager" + "github.com/awslabs/goformation/v5/cloudformation/lightsail" "github.com/awslabs/goformation/v5/cloudformation/location" "github.com/awslabs/goformation/v5/cloudformation/logs" "github.com/awslabs/goformation/v5/cloudformation/lookoutequipment" @@ -120,12 +123,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 +184,9 @@ 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::RuleGroupsNamespace": &aps.RuleGroupsNamespace{}, + "AWS::APS::Workspace": &aps.Workspace{}, "AWS::AccessAnalyzer::Analyzer": &accessanalyzer.Analyzer{}, "AWS::AmazonMQ::Broker": &amazonmq.Broker{}, "AWS::AmazonMQ::Configuration": &amazonmq.Configuration{}, @@ -267,6 +275,8 @@ func AllResources() map[string]Resource { "AWS::Backup::BackupPlan": &backup.BackupPlan{}, "AWS::Backup::BackupSelection": &backup.BackupSelection{}, "AWS::Backup::BackupVault": &backup.BackupVault{}, + "AWS::Backup::Framework": &backup.Framework{}, + "AWS::Backup::ReportPlan": &backup.ReportPlan{}, "AWS::Batch::ComputeEnvironment": &batch.ComputeEnvironment{}, "AWS::Batch::JobDefinition": &batch.JobDefinition{}, "AWS::Batch::JobQueue": &batch.JobQueue{}, @@ -447,6 +457,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 +594,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{}, @@ -683,6 +695,8 @@ func AllResources() map[string]Resource { "AWS::Lambda::Version": &lambda.Version{}, "AWS::LicenseManager::Grant": &licensemanager.Grant{}, "AWS::LicenseManager::License": &licensemanager.License{}, + "AWS::Lightsail::Disk": &lightsail.Disk{}, + "AWS::Lightsail::Instance": &lightsail.Instance{}, "AWS::Location::GeofenceCollection": &location.GeofenceCollection{}, "AWS::Location::Map": &location.Map{}, "AWS::Location::PlaceIndex": &location.PlaceIndex{}, @@ -724,6 +738,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 +763,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 +1069,78 @@ 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) +} + +// GetAllAPSRuleGroupsNamespaceResources retrieves all aps.RuleGroupsNamespace items from an AWS CloudFormation template +func (t *Template) GetAllAPSRuleGroupsNamespaceResources() map[string]*aps.RuleGroupsNamespace { + results := map[string]*aps.RuleGroupsNamespace{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *aps.RuleGroupsNamespace: + results[name] = resource + } + } + return results +} + +// GetAPSRuleGroupsNamespaceWithName retrieves all aps.RuleGroupsNamespace items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetAPSRuleGroupsNamespaceWithName(name string) (*aps.RuleGroupsNamespace, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *aps.RuleGroupsNamespace: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type aps.RuleGroupsNamespace 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{} @@ -3161,6 +3253,54 @@ func (t *Template) GetBackupBackupVaultWithName(name string) (*backup.BackupVaul return nil, fmt.Errorf("resource %q of type backup.BackupVault not found", name) } +// GetAllBackupFrameworkResources retrieves all backup.Framework items from an AWS CloudFormation template +func (t *Template) GetAllBackupFrameworkResources() map[string]*backup.Framework { + results := map[string]*backup.Framework{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *backup.Framework: + results[name] = resource + } + } + return results +} + +// GetBackupFrameworkWithName retrieves all backup.Framework items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetBackupFrameworkWithName(name string) (*backup.Framework, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *backup.Framework: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type backup.Framework not found", name) +} + +// GetAllBackupReportPlanResources retrieves all backup.ReportPlan items from an AWS CloudFormation template +func (t *Template) GetAllBackupReportPlanResources() map[string]*backup.ReportPlan { + results := map[string]*backup.ReportPlan{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *backup.ReportPlan: + results[name] = resource + } + } + return results +} + +// GetBackupReportPlanWithName retrieves all backup.ReportPlan items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetBackupReportPlanWithName(name string) (*backup.ReportPlan, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *backup.ReportPlan: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type backup.ReportPlan not found", name) +} + // GetAllBatchComputeEnvironmentResources retrieves all batch.ComputeEnvironment items from an AWS CloudFormation template func (t *Template) GetAllBatchComputeEnvironmentResources() map[string]*batch.ComputeEnvironment { results := map[string]*batch.ComputeEnvironment{} @@ -7481,6 +7621,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 +10909,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{} @@ -13145,6 +13333,54 @@ func (t *Template) GetLicenseManagerLicenseWithName(name string) (*licensemanage return nil, fmt.Errorf("resource %q of type licensemanager.License not found", name) } +// GetAllLightsailDiskResources retrieves all lightsail.Disk items from an AWS CloudFormation template +func (t *Template) GetAllLightsailDiskResources() map[string]*lightsail.Disk { + results := map[string]*lightsail.Disk{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *lightsail.Disk: + results[name] = resource + } + } + return results +} + +// GetLightsailDiskWithName retrieves all lightsail.Disk items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLightsailDiskWithName(name string) (*lightsail.Disk, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *lightsail.Disk: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type lightsail.Disk not found", name) +} + +// GetAllLightsailInstanceResources retrieves all lightsail.Instance items from an AWS CloudFormation template +func (t *Template) GetAllLightsailInstanceResources() map[string]*lightsail.Instance { + results := map[string]*lightsail.Instance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *lightsail.Instance: + results[name] = resource + } + } + return results +} + +// GetLightsailInstanceWithName retrieves all lightsail.Instance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLightsailInstanceWithName(name string) (*lightsail.Instance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *lightsail.Instance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type lightsail.Instance not found", name) +} + // GetAllLocationGeofenceCollectionResources retrieves all location.GeofenceCollection items from an AWS CloudFormation template func (t *Template) GetAllLocationGeofenceCollectionResources() map[string]*location.GeofenceCollection { results := map[string]*location.GeofenceCollection{} @@ -14129,6 +14365,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 +14965,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-rulegroupsnamespace.go b/cloudformation/aps/aws-aps-rulegroupsnamespace.go new file mode 100644 index 0000000000..04ec1dc8fd --- /dev/null +++ b/cloudformation/aps/aws-aps-rulegroupsnamespace.go @@ -0,0 +1,122 @@ +package aps + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// RuleGroupsNamespace AWS CloudFormation Resource (AWS::APS::RuleGroupsNamespace) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html +type RuleGroupsNamespace struct { + + // Data AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-data + Data string `json:"Data,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Workspace AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-workspace + Workspace string `json:"Workspace,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 *RuleGroupsNamespace) AWSCloudFormationType() string { + return "AWS::APS::RuleGroupsNamespace" +} + +// 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 RuleGroupsNamespace) MarshalJSON() ([]byte, error) { + type Properties RuleGroupsNamespace + 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 *RuleGroupsNamespace) UnmarshalJSON(b []byte) error { + type Properties RuleGroupsNamespace + 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 = RuleGroupsNamespace(*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/aps/aws-aps-workspace.go b/cloudformation/aps/aws-aps-workspace.go new file mode 100644 index 0000000000..0a5ad59d7e --- /dev/null +++ b/cloudformation/aps/aws-aps-workspace.go @@ -0,0 +1,117 @@ +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 { + + // AlertManagerDefinition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html#cfn-aps-workspace-alertmanagerdefinition + AlertManagerDefinition string `json:"AlertManagerDefinition,omitempty"` + + // 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..bbb657289d --- /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: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-minretentiondays + MinRetentionDays float64 `json:"MinRetentionDays"` + + // 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/backup/aws-backup-framework.go b/cloudformation/backup/aws-backup-framework.go new file mode 100644 index 0000000000..f325e05bed --- /dev/null +++ b/cloudformation/backup/aws-backup-framework.go @@ -0,0 +1,122 @@ +package backup + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Framework AWS CloudFormation Resource (AWS::Backup::Framework) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html +type Framework struct { + + // FrameworkControls AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworkcontrols + FrameworkControls []Framework_FrameworkControl `json:"FrameworkControls,omitempty"` + + // FrameworkDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworkdescription + FrameworkDescription string `json:"FrameworkDescription,omitempty"` + + // FrameworkName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworkname + FrameworkName string `json:"FrameworkName,omitempty"` + + // FrameworkTags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags + FrameworkTags []tags.Tag `json:"FrameworkTags,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 *Framework) AWSCloudFormationType() string { + return "AWS::Backup::Framework" +} + +// 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 Framework) MarshalJSON() ([]byte, error) { + type Properties Framework + 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 *Framework) UnmarshalJSON(b []byte) error { + type Properties Framework + 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 = Framework(*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-framework_controlinputparameter.go b/cloudformation/backup/aws-backup-framework_controlinputparameter.go new file mode 100644 index 0000000000..6cef78530a --- /dev/null +++ b/cloudformation/backup/aws-backup-framework_controlinputparameter.go @@ -0,0 +1,40 @@ +package backup + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Framework_ControlInputParameter AWS CloudFormation Resource (AWS::Backup::Framework.ControlInputParameter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html +type Framework_ControlInputParameter struct { + + // ParameterName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html#cfn-backup-framework-controlinputparameter-parametername + ParameterName string `json:"ParameterName,omitempty"` + + // ParameterValue AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html#cfn-backup-framework-controlinputparameter-parametervalue + ParameterValue string `json:"ParameterValue,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 *Framework_ControlInputParameter) AWSCloudFormationType() string { + return "AWS::Backup::Framework.ControlInputParameter" +} diff --git a/cloudformation/backup/aws-backup-framework_frameworkcontrol.go b/cloudformation/backup/aws-backup-framework_frameworkcontrol.go new file mode 100644 index 0000000000..20a293fb97 --- /dev/null +++ b/cloudformation/backup/aws-backup-framework_frameworkcontrol.go @@ -0,0 +1,45 @@ +package backup + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Framework_FrameworkControl AWS CloudFormation Resource (AWS::Backup::Framework.FrameworkControl) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html +type Framework_FrameworkControl struct { + + // ControlInputParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlinputparameters + ControlInputParameters []Framework_ControlInputParameter `json:"ControlInputParameters,omitempty"` + + // ControlName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlname + ControlName string `json:"ControlName,omitempty"` + + // ControlScope AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlscope + ControlScope interface{} `json:"ControlScope,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 *Framework_FrameworkControl) AWSCloudFormationType() string { + return "AWS::Backup::Framework.FrameworkControl" +} diff --git a/cloudformation/backup/aws-backup-reportplan.go b/cloudformation/backup/aws-backup-reportplan.go new file mode 100644 index 0000000000..94cefdbace --- /dev/null +++ b/cloudformation/backup/aws-backup-reportplan.go @@ -0,0 +1,127 @@ +package backup + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// ReportPlan AWS CloudFormation Resource (AWS::Backup::ReportPlan) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html +type ReportPlan struct { + + // ReportDeliveryChannel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportdeliverychannel + ReportDeliveryChannel interface{} `json:"ReportDeliveryChannel,omitempty"` + + // ReportPlanDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplandescription + ReportPlanDescription string `json:"ReportPlanDescription,omitempty"` + + // ReportPlanName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplanname + ReportPlanName string `json:"ReportPlanName,omitempty"` + + // ReportPlanTags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags + ReportPlanTags []tags.Tag `json:"ReportPlanTags,omitempty"` + + // ReportSetting AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportsetting + ReportSetting interface{} `json:"ReportSetting,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 *ReportPlan) AWSCloudFormationType() string { + return "AWS::Backup::ReportPlan" +} + +// 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 ReportPlan) MarshalJSON() ([]byte, error) { + type Properties ReportPlan + 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 *ReportPlan) UnmarshalJSON(b []byte) error { + type Properties ReportPlan + 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 = ReportPlan(*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/ec2/aws-ec2-launchtemplate_acceleratorcount.go b/cloudformation/ec2/aws-ec2-launchtemplate_acceleratorcount.go new file mode 100644 index 0000000000..ddc49afcad --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_acceleratorcount.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_AcceleratorCount AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.AcceleratorCount) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html +type LaunchTemplate_AcceleratorCount struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html#cfn-ec2-launchtemplate-acceleratorcount-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html#cfn-ec2-launchtemplate-acceleratorcount-min + Min int `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_AcceleratorCount) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.AcceleratorCount" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go b/cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go new file mode 100644 index 0000000000..da2dbfb9c3 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_AcceleratorTotalMemoryMiB AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html +type LaunchTemplate_AcceleratorTotalMemoryMiB struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html#cfn-ec2-launchtemplate-acceleratortotalmemorymib-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html#cfn-ec2-launchtemplate-acceleratortotalmemorymib-min + Min int `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_AcceleratorTotalMemoryMiB) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go b/cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go new file mode 100644 index 0000000000..bdd0592fe4 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_BaselineEbsBandwidthMbps AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html +type LaunchTemplate_BaselineEbsBandwidthMbps struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html#cfn-ec2-launchtemplate-baselineebsbandwidthmbps-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html#cfn-ec2-launchtemplate-baselineebsbandwidthmbps-min + Min int `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_BaselineEbsBandwidthMbps) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go b/cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go new file mode 100644 index 0000000000..7f6e8a6ac7 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_MemoryGiBPerVCpu AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html +type LaunchTemplate_MemoryGiBPerVCpu struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html#cfn-ec2-launchtemplate-memorygibpervcpu-max + Max float64 `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html#cfn-ec2-launchtemplate-memorygibpervcpu-min + Min float64 `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_MemoryGiBPerVCpu) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go b/cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go new file mode 100644 index 0000000000..d64c07bf43 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_MemoryMiB AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.MemoryMiB) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html +type LaunchTemplate_MemoryMiB struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html#cfn-ec2-launchtemplate-memorymib-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html#cfn-ec2-launchtemplate-memorymib-min + Min int `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_MemoryMiB) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.MemoryMiB" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go b/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go index 1fc998f0f1..cf0d18c3fb 100644 --- a/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go +++ b/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go @@ -13,6 +13,11 @@ type LaunchTemplate_MetadataOptions struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpendpoint HttpEndpoint string `json:"HttpEndpoint,omitempty"` + // HttpProtocolIpv6 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpprotocolipv6 + HttpProtocolIpv6 string `json:"HttpProtocolIpv6,omitempty"` + // HttpPutResponseHopLimit AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpputresponsehoplimit diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go b/cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go new file mode 100644 index 0000000000..f7e92fb748 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_NetworkInterfaceCount AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.NetworkInterfaceCount) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html +type LaunchTemplate_NetworkInterfaceCount struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html#cfn-ec2-launchtemplate-networkinterfacecount-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html#cfn-ec2-launchtemplate-networkinterfacecount-min + Min int `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_NetworkInterfaceCount) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.NetworkInterfaceCount" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go b/cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go new file mode 100644 index 0000000000..cf5fa6d6f1 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_TotalLocalStorageGB AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.TotalLocalStorageGB) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html +type LaunchTemplate_TotalLocalStorageGB struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html#cfn-ec2-launchtemplate-totallocalstoragegb-max + Max float64 `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html#cfn-ec2-launchtemplate-totallocalstoragegb-min + Min float64 `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_TotalLocalStorageGB) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.TotalLocalStorageGB" +} diff --git a/cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go b/cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go new file mode 100644 index 0000000000..0125c89bfd --- /dev/null +++ b/cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LaunchTemplate_VCpuCount AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.VCpuCount) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html +type LaunchTemplate_VCpuCount struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html#cfn-ec2-launchtemplate-vcpucount-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html#cfn-ec2-launchtemplate-vcpucount-min + Min int `json:"Min,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *LaunchTemplate_VCpuCount) AWSCloudFormationType() string { + return "AWS::EC2::LaunchTemplate.VCpuCount" +} 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/ecr/aws-ecr-replicationconfiguration_replicationrule.go b/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationrule.go index c07bb0034a..2f220dd9d8 100644 --- a/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationrule.go +++ b/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationrule.go @@ -13,6 +13,11 @@ type ReplicationConfiguration_ReplicationRule struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html#cfn-ecr-replicationconfiguration-replicationrule-destinations Destinations []ReplicationConfiguration_ReplicationDestination `json:"Destinations,omitempty"` + // RepositoryFilters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html#cfn-ecr-replicationconfiguration-replicationrule-repositoryfilters + RepositoryFilters []ReplicationConfiguration_RepositoryFilter `json:"RepositoryFilters,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.go b/cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.go new file mode 100644 index 0000000000..ae76029bd0 --- /dev/null +++ b/cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.go @@ -0,0 +1,40 @@ +package ecr + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ReplicationConfiguration_RepositoryFilter AWS CloudFormation Resource (AWS::ECR::ReplicationConfiguration.RepositoryFilter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html +type ReplicationConfiguration_RepositoryFilter struct { + + // Filter AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html#cfn-ecr-replicationconfiguration-repositoryfilter-filter + Filter string `json:"Filter,omitempty"` + + // FilterType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html#cfn-ecr-replicationconfiguration-repositoryfilter-filtertype + FilterType string `json:"FilterType,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 *ReplicationConfiguration_RepositoryFilter) AWSCloudFormationType() string { + return "AWS::ECR::ReplicationConfiguration.RepositoryFilter" +} 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/kendra/aws-kendra-datasource_datasourceconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_datasourceconfiguration.go index d09d711e70..313b66f427 100644 --- a/cloudformation/kendra/aws-kendra-datasource_datasourceconfiguration.go +++ b/cloudformation/kendra/aws-kendra-datasource_datasourceconfiguration.go @@ -48,6 +48,16 @@ type DataSource_DataSourceConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-sharepointconfiguration SharePointConfiguration *DataSource_SharePointConfiguration `json:"SharePointConfiguration,omitempty"` + // WebCrawlerConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-webcrawlerconfiguration + WebCrawlerConfiguration *DataSource_WebCrawlerConfiguration `json:"WebCrawlerConfiguration,omitempty"` + + // WorkDocsConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-workdocsconfiguration + WorkDocsConfiguration *DataSource_WorkDocsConfiguration `json:"WorkDocsConfiguration,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/kendra/aws-kendra-datasource_proxyconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_proxyconfiguration.go new file mode 100644 index 0000000000..6157f91400 --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_proxyconfiguration.go @@ -0,0 +1,45 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_ProxyConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ProxyConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html +type DataSource_ProxyConfiguration struct { + + // Credentials AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html#cfn-kendra-datasource-proxyconfiguration-credentials + Credentials string `json:"Credentials,omitempty"` + + // Host AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html#cfn-kendra-datasource-proxyconfiguration-host + Host string `json:"Host,omitempty"` + + // Port AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html#cfn-kendra-datasource-proxyconfiguration-port + Port int `json:"Port"` + + // 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_ProxyConfiguration) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.ProxyConfiguration" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go index 733dee2993..d96afada12 100644 --- a/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go +++ b/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html type DataSource_ServiceNowConfiguration struct { + // AuthenticationType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-authenticationtype + AuthenticationType string `json:"AuthenticationType,omitempty"` + // HostUrl AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-hosturl diff --git a/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go index 9844ead746..727a75297f 100644 --- a/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go +++ b/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go @@ -33,6 +33,11 @@ type DataSource_ServiceNowKnowledgeArticleConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-fieldmappings FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"` + // FilterQuery AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-filterquery + FilterQuery string `json:"FilterQuery,omitempty"` + // IncludeAttachmentFilePatterns AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-includeattachmentfilepatterns diff --git a/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go index 1c5129a5cd..6528e688c5 100644 --- a/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go +++ b/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go @@ -48,6 +48,11 @@ type DataSource_SharePointConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-sharepointversion SharePointVersion string `json:"SharePointVersion,omitempty"` + // SslCertificateS3Path AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-sslcertificates3path + SslCertificateS3Path *DataSource_S3Path `json:"SslCertificateS3Path,omitempty"` + // Urls AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-urls diff --git a/cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go new file mode 100644 index 0000000000..442a3cad0a --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go @@ -0,0 +1,35 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WebCrawlerAuthenticationConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerauthenticationconfiguration.html +type DataSource_WebCrawlerAuthenticationConfiguration struct { + + // BasicAuthentication AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerauthenticationconfiguration.html#cfn-kendra-datasource-webcrawlerauthenticationconfiguration-basicauthentication + BasicAuthentication []DataSource_WebCrawlerBasicAuthentication `json:"BasicAuthentication,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_WebCrawlerAuthenticationConfiguration) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go b/cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go new file mode 100644 index 0000000000..9986b4e69e --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go @@ -0,0 +1,45 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WebCrawlerBasicAuthentication AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerBasicAuthentication) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html +type DataSource_WebCrawlerBasicAuthentication struct { + + // Credentials AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html#cfn-kendra-datasource-webcrawlerbasicauthentication-credentials + Credentials string `json:"Credentials,omitempty"` + + // Host AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html#cfn-kendra-datasource-webcrawlerbasicauthentication-host + Host string `json:"Host,omitempty"` + + // Port AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html#cfn-kendra-datasource-webcrawlerbasicauthentication-port + Port int `json:"Port"` + + // 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_WebCrawlerBasicAuthentication) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go new file mode 100644 index 0000000000..95bc761a12 --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go @@ -0,0 +1,75 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WebCrawlerConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html +type DataSource_WebCrawlerConfiguration struct { + + // AuthenticationConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-authenticationconfiguration + AuthenticationConfiguration *DataSource_WebCrawlerAuthenticationConfiguration `json:"AuthenticationConfiguration,omitempty"` + + // CrawlDepth AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-crawldepth + CrawlDepth int `json:"CrawlDepth,omitempty"` + + // MaxContentSizePerPageInMegaBytes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-maxcontentsizeperpageinmegabytes + MaxContentSizePerPageInMegaBytes float64 `json:"MaxContentSizePerPageInMegaBytes,omitempty"` + + // MaxLinksPerPage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-maxlinksperpage + MaxLinksPerPage int `json:"MaxLinksPerPage,omitempty"` + + // MaxUrlsPerMinuteCrawlRate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-maxurlsperminutecrawlrate + MaxUrlsPerMinuteCrawlRate int `json:"MaxUrlsPerMinuteCrawlRate,omitempty"` + + // ProxyConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-proxyconfiguration + ProxyConfiguration *DataSource_ProxyConfiguration `json:"ProxyConfiguration,omitempty"` + + // UrlExclusionPatterns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-urlexclusionpatterns + UrlExclusionPatterns []string `json:"UrlExclusionPatterns,omitempty"` + + // UrlInclusionPatterns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-urlinclusionpatterns + UrlInclusionPatterns []string `json:"UrlInclusionPatterns,omitempty"` + + // Urls AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-urls + Urls *DataSource_WebCrawlerUrls `json:"Urls,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_WebCrawlerConfiguration) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WebCrawlerConfiguration" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go new file mode 100644 index 0000000000..73a6fe9b34 --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go @@ -0,0 +1,40 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WebCrawlerSeedUrlConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerseedurlconfiguration.html +type DataSource_WebCrawlerSeedUrlConfiguration struct { + + // SeedUrls AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerseedurlconfiguration.html#cfn-kendra-datasource-webcrawlerseedurlconfiguration-seedurls + SeedUrls []string `json:"SeedUrls,omitempty"` + + // WebCrawlerMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerseedurlconfiguration.html#cfn-kendra-datasource-webcrawlerseedurlconfiguration-webcrawlermode + WebCrawlerMode string `json:"WebCrawlerMode,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_WebCrawlerSeedUrlConfiguration) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go new file mode 100644 index 0000000000..242d6703e1 --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go @@ -0,0 +1,35 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WebCrawlerSiteMapsConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlersitemapsconfiguration.html +type DataSource_WebCrawlerSiteMapsConfiguration struct { + + // SiteMaps AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlersitemapsconfiguration.html#cfn-kendra-datasource-webcrawlersitemapsconfiguration-sitemaps + SiteMaps []string `json:"SiteMaps,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_WebCrawlerSiteMapsConfiguration) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go b/cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go new file mode 100644 index 0000000000..f6efb1ed5f --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go @@ -0,0 +1,40 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WebCrawlerUrls AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerUrls) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerurls.html +type DataSource_WebCrawlerUrls struct { + + // SeedUrlConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerurls.html#cfn-kendra-datasource-webcrawlerurls-seedurlconfiguration + SeedUrlConfiguration *DataSource_WebCrawlerSeedUrlConfiguration `json:"SeedUrlConfiguration,omitempty"` + + // SiteMapsConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerurls.html#cfn-kendra-datasource-webcrawlerurls-sitemapsconfiguration + SiteMapsConfiguration *DataSource_WebCrawlerSiteMapsConfiguration `json:"SiteMapsConfiguration,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_WebCrawlerUrls) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WebCrawlerUrls" +} diff --git a/cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go b/cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go new file mode 100644 index 0000000000..43db6c410f --- /dev/null +++ b/cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go @@ -0,0 +1,60 @@ +package kendra + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_WorkDocsConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WorkDocsConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html +type DataSource_WorkDocsConfiguration struct { + + // CrawlComments AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-crawlcomments + CrawlComments bool `json:"CrawlComments,omitempty"` + + // ExclusionPatterns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-exclusionpatterns + ExclusionPatterns []string `json:"ExclusionPatterns,omitempty"` + + // FieldMappings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-fieldmappings + FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"` + + // InclusionPatterns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-inclusionpatterns + InclusionPatterns []string `json:"InclusionPatterns,omitempty"` + + // OrganizationId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-organizationid + OrganizationId string `json:"OrganizationId,omitempty"` + + // UseChangeLog AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-usechangelog + UseChangeLog bool `json:"UseChangeLog,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_WorkDocsConfiguration) AWSCloudFormationType() string { + return "AWS::Kendra::DataSource.WorkDocsConfiguration" +} diff --git a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go index 1e999e192f..6917a65d98 100644 --- a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go +++ b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html type DeliveryStream struct { + // AmazonopensearchserviceDestinationConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration + AmazonopensearchserviceDestinationConfiguration *DeliveryStream_AmazonopensearchserviceDestinationConfiguration `json:"AmazonopensearchserviceDestinationConfiguration,omitempty"` + // DeliveryStreamEncryptionConfigurationInput AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput diff --git a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go new file mode 100644 index 0000000000..c480a6c629 --- /dev/null +++ b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go @@ -0,0 +1,40 @@ +package kinesisfirehose + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DeliveryStream_AmazonopensearchserviceBufferingHints AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html +type DeliveryStream_AmazonopensearchserviceBufferingHints struct { + + // IntervalInSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints-intervalinseconds + IntervalInSeconds int `json:"IntervalInSeconds,omitempty"` + + // SizeInMBs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints-sizeinmbs + SizeInMBs int `json:"SizeInMBs,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 *DeliveryStream_AmazonopensearchserviceBufferingHints) AWSCloudFormationType() string { + return "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" +} diff --git a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go new file mode 100644 index 0000000000..c84ceec040 --- /dev/null +++ b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go @@ -0,0 +1,95 @@ +package kinesisfirehose + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DeliveryStream_AmazonopensearchserviceDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html +type DeliveryStream_AmazonopensearchserviceDestinationConfiguration struct { + + // BufferingHints AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-bufferinghints + BufferingHints *DeliveryStream_AmazonopensearchserviceBufferingHints `json:"BufferingHints,omitempty"` + + // CloudWatchLoggingOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-cloudwatchloggingoptions + CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"` + + // ClusterEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-clusterendpoint + ClusterEndpoint string `json:"ClusterEndpoint,omitempty"` + + // DomainARN AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-domainarn + DomainARN string `json:"DomainARN,omitempty"` + + // IndexName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-indexname + IndexName string `json:"IndexName,omitempty"` + + // IndexRotationPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-indexrotationperiod + IndexRotationPeriod string `json:"IndexRotationPeriod,omitempty"` + + // ProcessingConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-processingconfiguration + ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"` + + // RetryOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-retryoptions + RetryOptions *DeliveryStream_AmazonopensearchserviceRetryOptions `json:"RetryOptions,omitempty"` + + // RoleARN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-rolearn + RoleARN string `json:"RoleARN,omitempty"` + + // S3BackupMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-s3backupmode + S3BackupMode string `json:"S3BackupMode,omitempty"` + + // S3Configuration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-s3configuration + S3Configuration *DeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"` + + // TypeName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-typename + TypeName string `json:"TypeName,omitempty"` + + // VpcConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-vpcconfiguration + VpcConfiguration *DeliveryStream_VpcConfiguration `json:"VpcConfiguration,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 *DeliveryStream_AmazonopensearchserviceDestinationConfiguration) AWSCloudFormationType() string { + return "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" +} diff --git a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go new file mode 100644 index 0000000000..d7dbf45e40 --- /dev/null +++ b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go @@ -0,0 +1,35 @@ +package kinesisfirehose + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DeliveryStream_AmazonopensearchserviceRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html +type DeliveryStream_AmazonopensearchserviceRetryOptions struct { + + // DurationInSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html#cfn-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions-durationinseconds + DurationInSeconds int `json:"DurationInSeconds,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 *DeliveryStream_AmazonopensearchserviceRetryOptions) AWSCloudFormationType() string { + return "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" +} diff --git a/cloudformation/lambda/aws-lambda-function.go b/cloudformation/lambda/aws-lambda-function.go index 1bca566416..3c1b6cf41e 100644 --- a/cloudformation/lambda/aws-lambda-function.go +++ b/cloudformation/lambda/aws-lambda-function.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html type Function struct { + // Architectures AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures + Architectures []string `json:"Architectures,omitempty"` + // Code AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code diff --git a/cloudformation/lambda/aws-lambda-layerversion.go b/cloudformation/lambda/aws-lambda-layerversion.go index dfff8f3f3c..65bd4018a3 100644 --- a/cloudformation/lambda/aws-lambda-layerversion.go +++ b/cloudformation/lambda/aws-lambda-layerversion.go @@ -12,6 +12,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html type LayerVersion struct { + // CompatibleArchitectures AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures + CompatibleArchitectures []string `json:"CompatibleArchitectures,omitempty"` + // CompatibleRuntimes AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes diff --git a/cloudformation/lightsail/aws-lightsail-disk.go b/cloudformation/lightsail/aws-lightsail-disk.go new file mode 100644 index 0000000000..cd13d77f7c --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-disk.go @@ -0,0 +1,127 @@ +package lightsail + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Disk AWS CloudFormation Resource (AWS::Lightsail::Disk) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html +type Disk struct { + + // AddOns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-addons + AddOns []Disk_AddOn `json:"AddOns,omitempty"` + + // AvailabilityZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-availabilityzone + AvailabilityZone string `json:"AvailabilityZone,omitempty"` + + // DiskName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-diskname + DiskName string `json:"DiskName,omitempty"` + + // SizeInGb AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-sizeingb + SizeInGb int `json:"SizeInGb"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-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 *Disk) AWSCloudFormationType() string { + return "AWS::Lightsail::Disk" +} + +// 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 Disk) MarshalJSON() ([]byte, error) { + type Properties Disk + 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 *Disk) UnmarshalJSON(b []byte) error { + type Properties Disk + 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 = Disk(*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/lightsail/aws-lightsail-disk_addon.go b/cloudformation/lightsail/aws-lightsail-disk_addon.go new file mode 100644 index 0000000000..9a46ef6b8d --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-disk_addon.go @@ -0,0 +1,45 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Disk_AddOn AWS CloudFormation Resource (AWS::Lightsail::Disk.AddOn) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html +type Disk_AddOn struct { + + // AddOnType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html#cfn-lightsail-disk-addon-addontype + AddOnType string `json:"AddOnType,omitempty"` + + // AutoSnapshotAddOnRequest AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html#cfn-lightsail-disk-addon-autosnapshotaddonrequest + AutoSnapshotAddOnRequest *Disk_AutoSnapshotAddOn `json:"AutoSnapshotAddOnRequest,omitempty"` + + // Status AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html#cfn-lightsail-disk-addon-status + Status string `json:"Status,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Disk_AddOn) AWSCloudFormationType() string { + return "AWS::Lightsail::Disk.AddOn" +} diff --git a/cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go b/cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go new file mode 100644 index 0000000000..d91c3d22c2 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go @@ -0,0 +1,35 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Disk_AutoSnapshotAddOn AWS CloudFormation Resource (AWS::Lightsail::Disk.AutoSnapshotAddOn) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html +type Disk_AutoSnapshotAddOn struct { + + // SnapshotTimeOfDay AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html#cfn-lightsail-disk-autosnapshotaddon-snapshottimeofday + SnapshotTimeOfDay string `json:"SnapshotTimeOfDay,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 *Disk_AutoSnapshotAddOn) AWSCloudFormationType() string { + return "AWS::Lightsail::Disk.AutoSnapshotAddOn" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance.go b/cloudformation/lightsail/aws-lightsail-instance.go new file mode 100644 index 0000000000..7492d77940 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance.go @@ -0,0 +1,152 @@ +package lightsail + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Instance AWS CloudFormation Resource (AWS::Lightsail::Instance) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html +type Instance struct { + + // AddOns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-addons + AddOns []Instance_AddOn `json:"AddOns,omitempty"` + + // AvailabilityZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-availabilityzone + AvailabilityZone string `json:"AvailabilityZone,omitempty"` + + // BlueprintId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-blueprintid + BlueprintId string `json:"BlueprintId,omitempty"` + + // BundleId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-bundleid + BundleId string `json:"BundleId,omitempty"` + + // Hardware AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-hardware + Hardware *Instance_Hardware `json:"Hardware,omitempty"` + + // InstanceName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-instancename + InstanceName string `json:"InstanceName,omitempty"` + + // Location AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-location + Location *Instance_Location `json:"Location,omitempty"` + + // Networking AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-networking + Networking *Instance_Networking `json:"Networking,omitempty"` + + // State AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-state + State *Instance_State `json:"State,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-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 *Instance) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance" +} + +// 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 Instance) MarshalJSON() ([]byte, error) { + type Properties Instance + 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 *Instance) UnmarshalJSON(b []byte) error { + type Properties Instance + 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 = Instance(*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/lightsail/aws-lightsail-instance_addon.go b/cloudformation/lightsail/aws-lightsail-instance_addon.go new file mode 100644 index 0000000000..e4aacaa969 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_addon.go @@ -0,0 +1,45 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_AddOn AWS CloudFormation Resource (AWS::Lightsail::Instance.AddOn) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html +type Instance_AddOn struct { + + // AddOnType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html#cfn-lightsail-instance-addon-addontype + AddOnType string `json:"AddOnType,omitempty"` + + // AutoSnapshotAddOnRequest AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html#cfn-lightsail-instance-addon-autosnapshotaddonrequest + AutoSnapshotAddOnRequest *Instance_AutoSnapshotAddOn `json:"AutoSnapshotAddOnRequest,omitempty"` + + // Status AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html#cfn-lightsail-instance-addon-status + Status string `json:"Status,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Instance_AddOn) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.AddOn" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go b/cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go new file mode 100644 index 0000000000..2ffde3e59f --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go @@ -0,0 +1,35 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_AutoSnapshotAddOn AWS CloudFormation Resource (AWS::Lightsail::Instance.AutoSnapshotAddOn) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html +type Instance_AutoSnapshotAddOn struct { + + // SnapshotTimeOfDay AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html#cfn-lightsail-instance-autosnapshotaddon-snapshottimeofday + SnapshotTimeOfDay string `json:"SnapshotTimeOfDay,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 *Instance_AutoSnapshotAddOn) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.AutoSnapshotAddOn" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_disk.go b/cloudformation/lightsail/aws-lightsail-instance_disk.go new file mode 100644 index 0000000000..e4c80f1787 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_disk.go @@ -0,0 +1,65 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_Disk AWS CloudFormation Resource (AWS::Lightsail::Instance.Disk) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html +type Instance_Disk struct { + + // AttachedTo AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-attachedto + AttachedTo string `json:"AttachedTo,omitempty"` + + // AttachmentState AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-attachmentstate + AttachmentState string `json:"AttachmentState,omitempty"` + + // DiskName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-diskname + DiskName string `json:"DiskName,omitempty"` + + // IOPS AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-iops + IOPS int `json:"IOPS,omitempty"` + + // IsSystemDisk AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-issystemdisk + IsSystemDisk bool `json:"IsSystemDisk,omitempty"` + + // Path AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-path + Path string `json:"Path,omitempty"` + + // SizeInGb AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-sizeingb + SizeInGb string `json:"SizeInGb,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 *Instance_Disk) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.Disk" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_hardware.go b/cloudformation/lightsail/aws-lightsail-instance_hardware.go new file mode 100644 index 0000000000..5f72b0bb90 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_hardware.go @@ -0,0 +1,45 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_Hardware AWS CloudFormation Resource (AWS::Lightsail::Instance.Hardware) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html +type Instance_Hardware struct { + + // CpuCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html#cfn-lightsail-instance-hardware-cpucount + CpuCount int `json:"CpuCount,omitempty"` + + // Disks AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html#cfn-lightsail-instance-hardware-disks + Disks []Instance_Disk `json:"Disks,omitempty"` + + // RamSizeInGb AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html#cfn-lightsail-instance-hardware-ramsizeingb + RamSizeInGb int `json:"RamSizeInGb,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 *Instance_Hardware) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.Hardware" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_location.go b/cloudformation/lightsail/aws-lightsail-instance_location.go new file mode 100644 index 0000000000..eb90c21e34 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_location.go @@ -0,0 +1,40 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_Location AWS CloudFormation Resource (AWS::Lightsail::Instance.Location) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html +type Instance_Location struct { + + // AvailabilityZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html#cfn-lightsail-instance-location-availabilityzone + AvailabilityZone string `json:"AvailabilityZone,omitempty"` + + // RegionName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html#cfn-lightsail-instance-location-regionname + RegionName string `json:"RegionName,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 *Instance_Location) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.Location" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go b/cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go new file mode 100644 index 0000000000..f6d9aafd7f --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go @@ -0,0 +1,35 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_MonthlyTransfer AWS CloudFormation Resource (AWS::Lightsail::Instance.MonthlyTransfer) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html +type Instance_MonthlyTransfer struct { + + // GbPerMonthAllocated AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html#cfn-lightsail-instance-monthlytransfer-gbpermonthallocated + GbPerMonthAllocated string `json:"GbPerMonthAllocated,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 *Instance_MonthlyTransfer) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.MonthlyTransfer" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_networking.go b/cloudformation/lightsail/aws-lightsail-instance_networking.go new file mode 100644 index 0000000000..60f1de7d10 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_networking.go @@ -0,0 +1,40 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_Networking AWS CloudFormation Resource (AWS::Lightsail::Instance.Networking) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html +type Instance_Networking struct { + + // MonthlyTransfer AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html#cfn-lightsail-instance-networking-monthlytransfer + MonthlyTransfer interface{} `json:"MonthlyTransfer,omitempty"` + + // Ports AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html#cfn-lightsail-instance-networking-ports + Ports []Instance_Port `json:"Ports,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 *Instance_Networking) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.Networking" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_port.go b/cloudformation/lightsail/aws-lightsail-instance_port.go new file mode 100644 index 0000000000..d11cbbf3e6 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_port.go @@ -0,0 +1,80 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_Port AWS CloudFormation Resource (AWS::Lightsail::Instance.Port) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html +type Instance_Port struct { + + // AccessDirection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-accessdirection + AccessDirection string `json:"AccessDirection,omitempty"` + + // AccessFrom AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-accessfrom + AccessFrom string `json:"AccessFrom,omitempty"` + + // AccessType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-accesstype + AccessType string `json:"AccessType,omitempty"` + + // CidrListAliases AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-cidrlistaliases + CidrListAliases []string `json:"CidrListAliases,omitempty"` + + // Cidrs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-cidrs + Cidrs []string `json:"Cidrs,omitempty"` + + // CommonName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-commonname + CommonName string `json:"CommonName,omitempty"` + + // FromPort AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-fromport + FromPort int `json:"FromPort,omitempty"` + + // Ipv6Cidrs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-ipv6cidrs + Ipv6Cidrs []string `json:"Ipv6Cidrs,omitempty"` + + // Protocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-protocol + Protocol string `json:"Protocol,omitempty"` + + // ToPort AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-toport + ToPort int `json:"ToPort,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 *Instance_Port) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.Port" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance_state.go b/cloudformation/lightsail/aws-lightsail-instance_state.go new file mode 100644 index 0000000000..e39300f072 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-instance_state.go @@ -0,0 +1,40 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Instance_State AWS CloudFormation Resource (AWS::Lightsail::Instance.State) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html +type Instance_State struct { + + // Code AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html#cfn-lightsail-instance-state-code + Code int `json:"Code,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html#cfn-lightsail-instance-state-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Instance_State) AWSCloudFormationType() string { + return "AWS::Lightsail::Instance.State" +} diff --git a/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go b/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go index 4fec80b873..91ef21e677 100644 --- a/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go +++ b/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go @@ -9,7 +9,7 @@ import ( type Flow_Encryption struct { // Algorithm AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-algorithm Algorithm string `json:"Algorithm,omitempty"` diff --git a/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go b/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go index a879338225..eaaaa14b6f 100644 --- a/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go +++ b/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go @@ -43,6 +43,11 @@ type Flow_Source struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-maxlatency MaxLatency int `json:"MaxLatency,omitempty"` + // MinLatency AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-minlatency + MinLatency int `json:"MinLatency,omitempty"` + // Name AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-name @@ -58,6 +63,11 @@ type Flow_Source struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-sourcearn SourceArn string `json:"SourceArn,omitempty"` + // SourceIngestPort AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-sourceingestport + SourceIngestPort string `json:"SourceIngestPort,omitempty"` + // StreamId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-streamid diff --git a/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go b/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go index bc1a9cc177..73907d1857 100644 --- a/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go +++ b/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go @@ -42,6 +42,11 @@ type FlowOutput struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-maxlatency MaxLatency int `json:"MaxLatency,omitempty"` + // MinLatency AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-minlatency + MinLatency int `json:"MinLatency,omitempty"` + // Name AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-name diff --git a/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go b/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go index c0b033c297..a4f9217c80 100644 --- a/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go +++ b/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go @@ -9,7 +9,7 @@ import ( type FlowOutput_Encryption struct { // Algorithm AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html#cfn-mediaconnect-flowoutput-encryption-algorithm Algorithm string `json:"Algorithm,omitempty"` 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/cloudformation/sqs/aws-sqs-queuepolicy.go b/cloudformation/sqs/aws-sqs-queuepolicy.go index 7b10a092a8..db226dcd68 100644 --- a/cloudformation/sqs/aws-sqs-queuepolicy.go +++ b/cloudformation/sqs/aws-sqs-queuepolicy.go @@ -9,17 +9,17 @@ import ( ) // QueuePolicy AWS CloudFormation Resource (AWS::SQS::QueuePolicy) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html type QueuePolicy struct { // PolicyDocument AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-policydoc + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html#cfn-sqs-queuepolicy-policydocument PolicyDocument interface{} `json:"PolicyDocument,omitempty"` // Queues AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-queues + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html#cfn-sqs-queuepolicy-queues Queues []string `json:"Queues,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/ssm/aws-ssm-maintenancewindowtask.go b/cloudformation/ssm/aws-ssm-maintenancewindowtask.go index 3e7305cff0..98ca4df2c9 100644 --- a/cloudformation/ssm/aws-ssm-maintenancewindowtask.go +++ b/cloudformation/ssm/aws-ssm-maintenancewindowtask.go @@ -12,6 +12,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html type MaintenanceWindowTask struct { + // CutoffBehavior AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-cutoffbehavior + CutoffBehavior string `json:"CutoffBehavior,omitempty"` + // Description AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-description diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 589d9d4766..21045913d2 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -736,6 +736,224 @@ 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::RuleGroupsNamespace": { + "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": { + "Data": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Workspace": { + "type": "string" + } + }, + "required": [ + "Data", + "Workspace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::RuleGroupsNamespace" + ], + "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": { + "AlertManagerDefinition": { + "type": "string" + }, + "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 +11320,9 @@ var CloudformationSchema = `{ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11255,6 +11476,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 +15115,9 @@ var CloudformationSchema = `{ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14908,6 +15148,24 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "ChangeableForDays": { + "type": "number" + }, + "MaxRetentionDays": { + "type": "number" + }, + "MinRetentionDays": { + "type": "number" + } + }, + "required": [ + "MinRetentionDays" + ], + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -14927,7 +15185,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::Backup::Framework": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14959,33 +15217,33 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { - "type": "string" - }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "FrameworkControls": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl" + }, + "type": "array" }, - "ServiceRole": { + "FrameworkDescription": { "type": "string" }, - "State": { + "FrameworkName": { "type": "string" }, - "Tags": { - "type": "object" - }, - "Type": { - "type": "string" + "FrameworkTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Type" + "FrameworkControls" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::Backup::Framework" ], "type": "string" }, @@ -15004,111 +15262,303 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::Backup::Framework.ControlInputParameter": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" - }, - "Ec2Configuration": { - "items": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" - }, - "type": "array" - }, - "Ec2KeyPair": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceRole": { - "type": "string" - }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { - "type": "number" - }, - "PlacementGroup": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + "ParameterName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "type": "object" - }, - "Type": { + "ParameterValue": { "type": "string" } }, "required": [ - "MaxvCpus", - "Subnets", - "Type" + "ParameterName", + "ParameterValue" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "AWS::Backup::Framework.FrameworkControl": { "additionalProperties": false, "properties": { - "ImageIdOverride": { - "type": "string" + "ControlInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter" + }, + "type": "array" }, - "ImageType": { + "ControlName": { "type": "string" + }, + "ControlScope": { + "type": "object" } }, "required": [ - "ImageType" + "ControlName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { - "additionalProperties": false, - "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition": { + "AWS::Backup::ReportPlan": { + "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": { + "ReportDeliveryChannel": { + "type": "object" + }, + "ReportPlanDescription": { + "type": "string" + }, + "ReportPlanName": { + "type": "string" + }, + "ReportPlanTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ReportSetting": { + "type": "object" + } + }, + "required": [ + "ReportDeliveryChannel", + "ReportSetting" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::ReportPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment": { + "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": { + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::ComputeEnvironment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "MaxvCpus", + "Subnets", + "Type" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34639,6 +35089,42 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::LaunchTemplate.AcceleratorCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -34939,12 +35425,39 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.MetadataOptions": { "additionalProperties": false, "properties": { "HttpEndpoint": { "type": "string" }, + "HttpProtocolIpv6": { + "type": "string" + }, "HttpPutResponseHopLimit": { "type": "number" }, @@ -35023,6 +35536,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.Placement": { "additionalProperties": false, "properties": { @@ -35101,6 +35626,30 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.VCpuCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LocalGatewayRoute": { "additionalProperties": false, "properties": { @@ -39022,6 +39571,94 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::TransitGatewayVpcAttachment": { + "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": { + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Options": { + "type": "object" + }, + "RemoveSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayVpcAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::EC2::VPC": { "additionalProperties": false, "properties": { @@ -40400,6 +41037,12 @@ var CloudformationSchema = `{ "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" }, "type": "array" + }, + "RepositoryFilters": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" + }, + "type": "array" } }, "required": [ @@ -40407,6 +41050,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::ECR::ReplicationConfiguration.RepositoryFilter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "FilterType": { + "type": "string" + } + }, + "required": [ + "Filter", + "FilterType" + ], + "type": "object" + }, "AWS::ECR::Repository": { "additionalProperties": false, "properties": { @@ -44636,6 +45295,12 @@ var CloudformationSchema = `{ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44671,7 +45336,6 @@ var CloudformationSchema = `{ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57947,6 +58611,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 +60869,6 @@ var CloudformationSchema = `{ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60180,9 +60957,6 @@ var CloudformationSchema = `{ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60233,7 +61007,7 @@ var CloudformationSchema = `{ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62444,6 +63218,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 +63635,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": { @@ -67595,6 +68400,12 @@ var CloudformationSchema = `{ }, "SharePointConfiguration": { "$ref": "#/definitions/AWS::Kendra::DataSource.SharePointConfiguration" + }, + "WebCrawlerConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerConfiguration" + }, + "WorkDocsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WorkDocsConfiguration" } }, "type": "object" @@ -67782,6 +68593,25 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Kendra::DataSource.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, "AWS::Kendra::DataSource.S3DataSourceConfiguration": { "additionalProperties": false, "properties": { @@ -68020,6 +68850,9 @@ var CloudformationSchema = `{ "AWS::Kendra::DataSource.ServiceNowConfiguration": { "additionalProperties": false, "properties": { + "AuthenticationType": { + "type": "string" + }, "HostUrl": { "type": "string" }, @@ -68067,6 +68900,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "FilterQuery": { + "type": "string" + }, "IncludeAttachmentFilePatterns": { "items": { "type": "string" @@ -68151,6 +68987,9 @@ var CloudformationSchema = `{ "SharePointVersion": { "type": "string" }, + "SslCertificateS3Path": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path" + }, "Urls": { "items": { "type": "string" @@ -68180,6 +69019,161 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "BasicAuthentication": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerBasicAuthentication" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Credentials", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration" + }, + "CrawlDepth": { + "type": "number" + }, + "MaxContentSizePerPageInMegaBytes": { + "type": "number" + }, + "MaxLinksPerPage": { + "type": "number" + }, + "MaxUrlsPerMinuteCrawlRate": { + "type": "number" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ProxyConfiguration" + }, + "UrlExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UrlInclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Urls": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerUrls" + } + }, + "required": [ + "Urls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration": { + "additionalProperties": false, + "properties": { + "SeedUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WebCrawlerMode": { + "type": "string" + } + }, + "required": [ + "SeedUrls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration": { + "additionalProperties": false, + "properties": { + "SiteMaps": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SiteMaps" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerUrls": { + "additionalProperties": false, + "properties": { + "SeedUrlConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration" + }, + "SiteMapsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WorkDocsConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlComments": { + "type": "boolean" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationId": { + "type": "string" + }, + "UseChangeLog": { + "type": "boolean" + } + }, + "required": [ + "OrganizationId" + ], + "type": "object" + }, "AWS::Kendra::Faq": { "additionalProperties": false, "properties": { @@ -70323,6 +71317,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" + }, "DeliveryStreamEncryptionConfigurationInput": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" }, @@ -70382,109 +71379,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { - "additionalProperties": false, - "properties": { - "IntervalInSeconds": { - "type": "number" - }, - "SizeInMBs": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "LogGroupName": { - "type": "string" - }, - "LogStreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { - "additionalProperties": false, - "properties": { - "CopyOptions": { - "type": "string" - }, - "DataTableColumns": { - "type": "string" - }, - "DataTableName": { - "type": "string" - } - }, - "required": [ - "DataTableName" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "InputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" - }, - "OutputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" - }, - "SchemaConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { - "additionalProperties": false, - "properties": { - "KeyARN": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "KeyType" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.Deserializer": { - "additionalProperties": false, - "properties": { - "HiveJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" - }, - "OpenXJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints": { "additionalProperties": false, "properties": { "IntervalInSeconds": { @@ -70496,11 +71391,11 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": { "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" }, "CloudWatchLoggingOptions": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" @@ -70521,7 +71416,180 @@ var CloudformationSchema = `{ "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "TypeName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "type": "string" + }, + "DataTableColumns": { + "type": "string" + }, + "DataTableName": { + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "type": "string" + }, + "DomainARN": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "IndexRotationPeriod": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" }, "RoleARN": { "type": "string" @@ -71973,6 +73041,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, @@ -72211,6 +73285,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CompatibleArchitectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "CompatibleRuntimes": { "items": { "type": "string" @@ -72811,7 +73891,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Location::GeofenceCollection": { + "AWS::Lightsail::Disk": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -72843,31 +73923,37 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CollectionName": { - "type": "string" + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" }, - "Description": { + "AvailabilityZone": { "type": "string" }, - "KmsKeyId": { + "DiskName": { "type": "string" }, - "PricingPlan": { - "type": "string" + "SizeInGb": { + "type": "number" }, - "PricingPlanDataSource": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CollectionName", - "PricingPlan" + "DiskName", + "SizeInGb" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::GeofenceCollection" + "AWS::Lightsail::Disk" ], "type": "string" }, @@ -72886,92 +73972,463 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Location::Map": { + "AWS::Lightsail::Disk.AddOn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AddOnType": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName", - "PricingPlan" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Status": { "type": "string" } }, "required": [ - "Type", - "Properties" + "AddOnType" ], "type": "object" }, - "AWS::Location::Map.MapConfiguration": { + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { "additionalProperties": false, "properties": { - "Style": { + "SnapshotTimeOfDay": { "type": "string" } }, - "required": [ - "Style" - ], "type": "object" }, - "AWS::Location::PlaceIndex": { + "AWS::Lightsail::Instance": { + "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": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlueprintId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Hardware": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware" + }, + "InstanceName": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + }, + "Networking": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" + }, + "State": { + "$ref": "#/definitions/AWS::Lightsail::Instance.State" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BlueprintId", + "BundleId", + "InstanceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Disk": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "AttachmentState": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "IOPS": { + "type": "number" + }, + "IsSystemDisk": { + "type": "boolean" + }, + "Path": { + "type": "string" + }, + "SizeInGb": { + "type": "string" + } + }, + "required": [ + "DiskName", + "Path" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Hardware": { + "additionalProperties": false, + "properties": { + "CpuCount": { + "type": "number" + }, + "Disks": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" + }, + "type": "array" + }, + "RamSizeInGb": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.MonthlyTransfer": { + "additionalProperties": false, + "properties": { + "GbPerMonthAllocated": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Networking": { + "additionalProperties": false, + "properties": { + "MonthlyTransfer": { + "type": "object" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Port" + }, + "type": "array" + } + }, + "required": [ + "Ports" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Port": { + "additionalProperties": false, + "properties": { + "AccessDirection": { + "type": "string" + }, + "AccessFrom": { + "type": "string" + }, + "AccessType": { + "type": "string" + }, + "CidrListAliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CommonName": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "Ipv6Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.State": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::GeofenceCollection": { + "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": { + "CollectionName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "PricingPlanDataSource": { + "type": "string" + } + }, + "required": [ + "CollectionName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::GeofenceCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74599,6 +76056,9 @@ var CloudformationSchema = `{ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74825,10 +76285,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": { @@ -75631,7 +77106,6 @@ var CloudformationSchema = `{ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -75672,6 +77146,9 @@ var CloudformationSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75681,6 +77158,9 @@ var CloudformationSchema = `{ "SourceArn": { "type": "string" }, + "SourceIngestPort": { + "type": "string" + }, "StreamId": { "type": "string" }, @@ -75869,6 +77349,9 @@ var CloudformationSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75935,7 +77418,6 @@ var CloudformationSchema = `{ } }, "required": [ - "Algorithm", "RoleArn", "SecretArn" ], @@ -80645,42 +82127,565 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" - }, - "type": "array" - }, - "LifecyclePolicy": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::MemoryDB::ACL": { + "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": { + "ACLName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ACLName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster": { + "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": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "FinalSnapshotName": { + "type": "string" + }, + "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": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { + "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" + }, + "ParameterGroupName": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ParameterGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::SubnetGroup": { + "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" + }, + "SubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "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" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { - "type": "string" + "AuthenticationMode": { + "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserName": { + "type": "string" } }, "required": [ - "ContainerName" + "AccessString", + "AuthenticationMode", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::MediaStore::Container" + "AWS::MemoryDB::User" ], "type": "string" }, @@ -80699,73 +82704,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, "AWS::Neptune::DBCluster": { "additionalProperties": false, "properties": { @@ -83034,62 +84972,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 +85277,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 +94295,9 @@ var CloudformationSchema = `{ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92079,10 +94327,8 @@ var CloudformationSchema = `{ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94907,6 +97153,9 @@ var CloudformationSchema = `{ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97681,6 +99930,9 @@ var CloudformationSchema = `{ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -98304,6 +100556,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CutoffBehavior": { + "type": "string" + }, "Description": { "type": "string" }, @@ -111614,6 +113869,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::RuleGroupsNamespace" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -111878,6 +114142,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Backup::BackupVault" }, + { + "$ref": "#/definitions/AWS::Backup::Framework" + }, + { + "$ref": "#/definitions/AWS::Backup::ReportPlan" + }, { "$ref": "#/definitions/AWS::Batch::ComputeEnvironment" }, @@ -112418,6 +114688,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -112826,6 +115099,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -113126,6 +115402,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Disk" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Instance" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -113249,6 +115531,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 +115606,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..56a3442116 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -733,6 +733,224 @@ ], "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::RuleGroupsNamespace": { + "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": { + "Data": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Workspace": { + "type": "string" + } + }, + "required": [ + "Data", + "Workspace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::RuleGroupsNamespace" + ], + "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": { + "AlertManagerDefinition": { + "type": "string" + }, + "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 +11317,9 @@ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11252,6 +11473,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 +15112,9 @@ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14905,6 +15145,24 @@ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "ChangeableForDays": { + "type": "number" + }, + "MaxRetentionDays": { + "type": "number" + }, + "MinRetentionDays": { + "type": "number" + } + }, + "required": [ + "MinRetentionDays" + ], + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -14924,7 +15182,7 @@ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::Backup::Framework": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14956,33 +15214,33 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { - "type": "string" - }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "FrameworkControls": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl" + }, + "type": "array" }, - "ServiceRole": { + "FrameworkDescription": { "type": "string" }, - "State": { + "FrameworkName": { "type": "string" }, - "Tags": { - "type": "object" - }, - "Type": { - "type": "string" + "FrameworkTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Type" + "FrameworkControls" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::Backup::Framework" ], "type": "string" }, @@ -15001,111 +15259,303 @@ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::Backup::Framework.ControlInputParameter": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" - }, - "Ec2Configuration": { - "items": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" - }, - "type": "array" - }, - "Ec2KeyPair": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceRole": { - "type": "string" - }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { - "type": "number" - }, - "PlacementGroup": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + "ParameterName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "type": "object" - }, - "Type": { + "ParameterValue": { "type": "string" } }, "required": [ - "MaxvCpus", - "Subnets", - "Type" + "ParameterName", + "ParameterValue" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "AWS::Backup::Framework.FrameworkControl": { "additionalProperties": false, "properties": { - "ImageIdOverride": { - "type": "string" + "ControlInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter" + }, + "type": "array" }, - "ImageType": { + "ControlName": { "type": "string" + }, + "ControlScope": { + "type": "object" } }, "required": [ - "ImageType" + "ControlName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { - "additionalProperties": false, - "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition": { + "AWS::Backup::ReportPlan": { + "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": { + "ReportDeliveryChannel": { + "type": "object" + }, + "ReportPlanDescription": { + "type": "string" + }, + "ReportPlanName": { + "type": "string" + }, + "ReportPlanTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ReportSetting": { + "type": "object" + } + }, + "required": [ + "ReportDeliveryChannel", + "ReportSetting" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::ReportPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment": { + "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": { + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::ComputeEnvironment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "MaxvCpus", + "Subnets", + "Type" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34636,6 +35086,42 @@ ], "type": "object" }, + "AWS::EC2::LaunchTemplate.AcceleratorCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -34936,12 +35422,39 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.MetadataOptions": { "additionalProperties": false, "properties": { "HttpEndpoint": { "type": "string" }, + "HttpProtocolIpv6": { + "type": "string" + }, "HttpPutResponseHopLimit": { "type": "number" }, @@ -35020,6 +35533,18 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.Placement": { "additionalProperties": false, "properties": { @@ -35098,6 +35623,30 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.VCpuCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LocalGatewayRoute": { "additionalProperties": false, "properties": { @@ -39019,6 +39568,94 @@ ], "type": "object" }, + "AWS::EC2::TransitGatewayVpcAttachment": { + "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": { + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Options": { + "type": "object" + }, + "RemoveSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayVpcAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::EC2::VPC": { "additionalProperties": false, "properties": { @@ -40397,6 +41034,12 @@ "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" }, "type": "array" + }, + "RepositoryFilters": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" + }, + "type": "array" } }, "required": [ @@ -40404,6 +41047,22 @@ ], "type": "object" }, + "AWS::ECR::ReplicationConfiguration.RepositoryFilter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "FilterType": { + "type": "string" + } + }, + "required": [ + "Filter", + "FilterType" + ], + "type": "object" + }, "AWS::ECR::Repository": { "additionalProperties": false, "properties": { @@ -44633,6 +45292,12 @@ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44668,7 +45333,6 @@ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57944,6 +58608,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 +60866,6 @@ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60177,9 +60954,6 @@ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60230,7 +61004,7 @@ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62441,6 +63215,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, "Republish": { "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" }, @@ -62855,6 +63632,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": { @@ -67592,6 +68397,12 @@ }, "SharePointConfiguration": { "$ref": "#/definitions/AWS::Kendra::DataSource.SharePointConfiguration" + }, + "WebCrawlerConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerConfiguration" + }, + "WorkDocsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WorkDocsConfiguration" } }, "type": "object" @@ -67779,6 +68590,25 @@ }, "type": "object" }, + "AWS::Kendra::DataSource.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, "AWS::Kendra::DataSource.S3DataSourceConfiguration": { "additionalProperties": false, "properties": { @@ -68017,6 +68847,9 @@ "AWS::Kendra::DataSource.ServiceNowConfiguration": { "additionalProperties": false, "properties": { + "AuthenticationType": { + "type": "string" + }, "HostUrl": { "type": "string" }, @@ -68064,6 +68897,9 @@ }, "type": "array" }, + "FilterQuery": { + "type": "string" + }, "IncludeAttachmentFilePatterns": { "items": { "type": "string" @@ -68148,6 +68984,9 @@ "SharePointVersion": { "type": "string" }, + "SslCertificateS3Path": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path" + }, "Urls": { "items": { "type": "string" @@ -68177,6 +69016,161 @@ }, "type": "object" }, + "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "BasicAuthentication": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerBasicAuthentication" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Credentials", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration" + }, + "CrawlDepth": { + "type": "number" + }, + "MaxContentSizePerPageInMegaBytes": { + "type": "number" + }, + "MaxLinksPerPage": { + "type": "number" + }, + "MaxUrlsPerMinuteCrawlRate": { + "type": "number" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ProxyConfiguration" + }, + "UrlExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UrlInclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Urls": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerUrls" + } + }, + "required": [ + "Urls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration": { + "additionalProperties": false, + "properties": { + "SeedUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WebCrawlerMode": { + "type": "string" + } + }, + "required": [ + "SeedUrls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration": { + "additionalProperties": false, + "properties": { + "SiteMaps": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SiteMaps" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerUrls": { + "additionalProperties": false, + "properties": { + "SeedUrlConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration" + }, + "SiteMapsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WorkDocsConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlComments": { + "type": "boolean" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationId": { + "type": "string" + }, + "UseChangeLog": { + "type": "boolean" + } + }, + "required": [ + "OrganizationId" + ], + "type": "object" + }, "AWS::Kendra::Faq": { "additionalProperties": false, "properties": { @@ -70320,6 +71314,9 @@ "Properties": { "additionalProperties": false, "properties": { + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" + }, "DeliveryStreamEncryptionConfigurationInput": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" }, @@ -70379,109 +71376,7 @@ ], "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { - "additionalProperties": false, - "properties": { - "IntervalInSeconds": { - "type": "number" - }, - "SizeInMBs": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "LogGroupName": { - "type": "string" - }, - "LogStreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { - "additionalProperties": false, - "properties": { - "CopyOptions": { - "type": "string" - }, - "DataTableColumns": { - "type": "string" - }, - "DataTableName": { - "type": "string" - } - }, - "required": [ - "DataTableName" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "InputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" - }, - "OutputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" - }, - "SchemaConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { - "additionalProperties": false, - "properties": { - "KeyARN": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "KeyType" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.Deserializer": { - "additionalProperties": false, - "properties": { - "HiveJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" - }, - "OpenXJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints": { "additionalProperties": false, "properties": { "IntervalInSeconds": { @@ -70493,11 +71388,11 @@ }, "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": { "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" }, "CloudWatchLoggingOptions": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" @@ -70518,7 +71413,180 @@ "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "TypeName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "type": "string" + }, + "DataTableColumns": { + "type": "string" + }, + "DataTableName": { + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "type": "string" + }, + "DomainARN": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "IndexRotationPeriod": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" }, "RoleARN": { "type": "string" @@ -71970,6 +73038,12 @@ "Properties": { "additionalProperties": false, "properties": { + "Architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, @@ -72208,6 +73282,12 @@ "Properties": { "additionalProperties": false, "properties": { + "CompatibleArchitectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "CompatibleRuntimes": { "items": { "type": "string" @@ -72808,7 +73888,7 @@ ], "type": "object" }, - "AWS::Location::GeofenceCollection": { + "AWS::Lightsail::Disk": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -72840,31 +73920,37 @@ "Properties": { "additionalProperties": false, "properties": { - "CollectionName": { - "type": "string" + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" }, - "Description": { + "AvailabilityZone": { "type": "string" }, - "KmsKeyId": { + "DiskName": { "type": "string" }, - "PricingPlan": { - "type": "string" + "SizeInGb": { + "type": "number" }, - "PricingPlanDataSource": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CollectionName", - "PricingPlan" + "DiskName", + "SizeInGb" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::GeofenceCollection" + "AWS::Lightsail::Disk" ], "type": "string" }, @@ -72883,92 +73969,463 @@ ], "type": "object" }, - "AWS::Location::Map": { + "AWS::Lightsail::Disk.AddOn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AddOnType": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName", - "PricingPlan" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Status": { "type": "string" } }, "required": [ - "Type", - "Properties" + "AddOnType" ], "type": "object" }, - "AWS::Location::Map.MapConfiguration": { + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { "additionalProperties": false, "properties": { - "Style": { + "SnapshotTimeOfDay": { "type": "string" } }, - "required": [ - "Style" - ], "type": "object" }, - "AWS::Location::PlaceIndex": { + "AWS::Lightsail::Instance": { + "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": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlueprintId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Hardware": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware" + }, + "InstanceName": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + }, + "Networking": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" + }, + "State": { + "$ref": "#/definitions/AWS::Lightsail::Instance.State" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BlueprintId", + "BundleId", + "InstanceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Disk": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "AttachmentState": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "IOPS": { + "type": "number" + }, + "IsSystemDisk": { + "type": "boolean" + }, + "Path": { + "type": "string" + }, + "SizeInGb": { + "type": "string" + } + }, + "required": [ + "DiskName", + "Path" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Hardware": { + "additionalProperties": false, + "properties": { + "CpuCount": { + "type": "number" + }, + "Disks": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" + }, + "type": "array" + }, + "RamSizeInGb": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.MonthlyTransfer": { + "additionalProperties": false, + "properties": { + "GbPerMonthAllocated": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Networking": { + "additionalProperties": false, + "properties": { + "MonthlyTransfer": { + "type": "object" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Port" + }, + "type": "array" + } + }, + "required": [ + "Ports" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Port": { + "additionalProperties": false, + "properties": { + "AccessDirection": { + "type": "string" + }, + "AccessFrom": { + "type": "string" + }, + "AccessType": { + "type": "string" + }, + "CidrListAliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CommonName": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "Ipv6Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.State": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::GeofenceCollection": { + "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": { + "CollectionName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "PricingPlanDataSource": { + "type": "string" + } + }, + "required": [ + "CollectionName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::GeofenceCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74596,6 +76053,9 @@ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74822,10 +76282,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": { @@ -75628,7 +77103,6 @@ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -75669,6 +77143,9 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75678,6 +77155,9 @@ "SourceArn": { "type": "string" }, + "SourceIngestPort": { + "type": "string" + }, "StreamId": { "type": "string" }, @@ -75866,6 +77346,9 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75932,7 +77415,6 @@ } }, "required": [ - "Algorithm", "RoleArn", "SecretArn" ], @@ -80642,42 +82124,565 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" - }, - "type": "array" - }, - "LifecyclePolicy": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::MemoryDB::ACL": { + "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": { + "ACLName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ACLName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster": { + "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": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "FinalSnapshotName": { + "type": "string" + }, + "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": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { + "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" + }, + "ParameterGroupName": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ParameterGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::SubnetGroup": { + "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" + }, + "SubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "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" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { - "type": "string" + "AuthenticationMode": { + "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserName": { + "type": "string" } }, "required": [ - "ContainerName" + "AccessString", + "AuthenticationMode", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::MediaStore::Container" + "AWS::MemoryDB::User" ], "type": "string" }, @@ -80696,73 +82701,6 @@ ], "type": "object" }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, "AWS::Neptune::DBCluster": { "additionalProperties": false, "properties": { @@ -83031,62 +84969,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 +85274,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 +94292,9 @@ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92076,10 +94324,8 @@ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94904,6 +97150,9 @@ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97678,6 +99927,9 @@ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -98301,6 +100553,9 @@ "Properties": { "additionalProperties": false, "properties": { + "CutoffBehavior": { + "type": "string" + }, "Description": { "type": "string" }, @@ -111611,6 +113866,15 @@ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::RuleGroupsNamespace" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -111875,6 +114139,12 @@ { "$ref": "#/definitions/AWS::Backup::BackupVault" }, + { + "$ref": "#/definitions/AWS::Backup::Framework" + }, + { + "$ref": "#/definitions/AWS::Backup::ReportPlan" + }, { "$ref": "#/definitions/AWS::Batch::ComputeEnvironment" }, @@ -112415,6 +114685,9 @@ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -112823,6 +115096,9 @@ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -113123,6 +115399,12 @@ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Disk" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Instance" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -113246,6 +115528,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 +115603,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..368008c552 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -736,6 +736,224 @@ 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::RuleGroupsNamespace": { + "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": { + "Data": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Workspace": { + "type": "string" + } + }, + "required": [ + "Data", + "Workspace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::RuleGroupsNamespace" + ], + "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": { + "AlertManagerDefinition": { + "type": "string" + }, + "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 +11320,9 @@ var SamSchema = `{ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11255,6 +11476,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 +15115,9 @@ var SamSchema = `{ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14908,6 +15148,24 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "ChangeableForDays": { + "type": "number" + }, + "MaxRetentionDays": { + "type": "number" + }, + "MinRetentionDays": { + "type": "number" + } + }, + "required": [ + "MinRetentionDays" + ], + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -14927,7 +15185,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::Backup::Framework": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14959,33 +15217,33 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { - "type": "string" - }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "FrameworkControls": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl" + }, + "type": "array" }, - "ServiceRole": { + "FrameworkDescription": { "type": "string" }, - "State": { + "FrameworkName": { "type": "string" }, - "Tags": { - "type": "object" - }, - "Type": { - "type": "string" + "FrameworkTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Type" + "FrameworkControls" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::Backup::Framework" ], "type": "string" }, @@ -15004,111 +15262,303 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::Backup::Framework.ControlInputParameter": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" - }, - "Ec2Configuration": { - "items": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" - }, - "type": "array" - }, - "Ec2KeyPair": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceRole": { - "type": "string" - }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { - "type": "number" - }, - "PlacementGroup": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + "ParameterName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "type": "object" - }, - "Type": { + "ParameterValue": { "type": "string" } }, "required": [ - "MaxvCpus", - "Subnets", - "Type" + "ParameterName", + "ParameterValue" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "AWS::Backup::Framework.FrameworkControl": { "additionalProperties": false, "properties": { - "ImageIdOverride": { - "type": "string" + "ControlInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter" + }, + "type": "array" }, - "ImageType": { + "ControlName": { "type": "string" + }, + "ControlScope": { + "type": "object" } }, "required": [ - "ImageType" + "ControlName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { - "additionalProperties": false, - "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition": { + "AWS::Backup::ReportPlan": { + "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": { + "ReportDeliveryChannel": { + "type": "object" + }, + "ReportPlanDescription": { + "type": "string" + }, + "ReportPlanName": { + "type": "string" + }, + "ReportPlanTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ReportSetting": { + "type": "object" + } + }, + "required": [ + "ReportDeliveryChannel", + "ReportSetting" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::ReportPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment": { + "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": { + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::ComputeEnvironment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "MaxvCpus", + "Subnets", + "Type" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34639,6 +35089,42 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::LaunchTemplate.AcceleratorCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -34939,12 +35425,39 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.MetadataOptions": { "additionalProperties": false, "properties": { "HttpEndpoint": { "type": "string" }, + "HttpProtocolIpv6": { + "type": "string" + }, "HttpPutResponseHopLimit": { "type": "number" }, @@ -35023,6 +35536,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.Placement": { "additionalProperties": false, "properties": { @@ -35101,6 +35626,30 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.VCpuCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LocalGatewayRoute": { "additionalProperties": false, "properties": { @@ -39022,6 +39571,94 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::TransitGatewayVpcAttachment": { + "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": { + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Options": { + "type": "object" + }, + "RemoveSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayVpcAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::EC2::VPC": { "additionalProperties": false, "properties": { @@ -40400,6 +41037,12 @@ var SamSchema = `{ "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" }, "type": "array" + }, + "RepositoryFilters": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" + }, + "type": "array" } }, "required": [ @@ -40407,6 +41050,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::ECR::ReplicationConfiguration.RepositoryFilter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "FilterType": { + "type": "string" + } + }, + "required": [ + "Filter", + "FilterType" + ], + "type": "object" + }, "AWS::ECR::Repository": { "additionalProperties": false, "properties": { @@ -44636,6 +45295,12 @@ var SamSchema = `{ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44671,7 +45336,6 @@ var SamSchema = `{ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57947,6 +58611,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 +60869,6 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60180,9 +60957,6 @@ var SamSchema = `{ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60233,7 +61007,7 @@ var SamSchema = `{ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62444,6 +63218,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 +63635,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": { @@ -67595,6 +68400,12 @@ var SamSchema = `{ }, "SharePointConfiguration": { "$ref": "#/definitions/AWS::Kendra::DataSource.SharePointConfiguration" + }, + "WebCrawlerConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerConfiguration" + }, + "WorkDocsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WorkDocsConfiguration" } }, "type": "object" @@ -67782,6 +68593,25 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Kendra::DataSource.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, "AWS::Kendra::DataSource.S3DataSourceConfiguration": { "additionalProperties": false, "properties": { @@ -68020,6 +68850,9 @@ var SamSchema = `{ "AWS::Kendra::DataSource.ServiceNowConfiguration": { "additionalProperties": false, "properties": { + "AuthenticationType": { + "type": "string" + }, "HostUrl": { "type": "string" }, @@ -68067,6 +68900,9 @@ var SamSchema = `{ }, "type": "array" }, + "FilterQuery": { + "type": "string" + }, "IncludeAttachmentFilePatterns": { "items": { "type": "string" @@ -68151,6 +68987,9 @@ var SamSchema = `{ "SharePointVersion": { "type": "string" }, + "SslCertificateS3Path": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path" + }, "Urls": { "items": { "type": "string" @@ -68180,6 +69019,161 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "BasicAuthentication": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerBasicAuthentication" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Credentials", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration" + }, + "CrawlDepth": { + "type": "number" + }, + "MaxContentSizePerPageInMegaBytes": { + "type": "number" + }, + "MaxLinksPerPage": { + "type": "number" + }, + "MaxUrlsPerMinuteCrawlRate": { + "type": "number" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ProxyConfiguration" + }, + "UrlExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UrlInclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Urls": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerUrls" + } + }, + "required": [ + "Urls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration": { + "additionalProperties": false, + "properties": { + "SeedUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WebCrawlerMode": { + "type": "string" + } + }, + "required": [ + "SeedUrls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration": { + "additionalProperties": false, + "properties": { + "SiteMaps": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SiteMaps" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerUrls": { + "additionalProperties": false, + "properties": { + "SeedUrlConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration" + }, + "SiteMapsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WorkDocsConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlComments": { + "type": "boolean" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationId": { + "type": "string" + }, + "UseChangeLog": { + "type": "boolean" + } + }, + "required": [ + "OrganizationId" + ], + "type": "object" + }, "AWS::Kendra::Faq": { "additionalProperties": false, "properties": { @@ -70323,6 +71317,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" + }, "DeliveryStreamEncryptionConfigurationInput": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" }, @@ -70382,109 +71379,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { - "additionalProperties": false, - "properties": { - "IntervalInSeconds": { - "type": "number" - }, - "SizeInMBs": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "LogGroupName": { - "type": "string" - }, - "LogStreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { - "additionalProperties": false, - "properties": { - "CopyOptions": { - "type": "string" - }, - "DataTableColumns": { - "type": "string" - }, - "DataTableName": { - "type": "string" - } - }, - "required": [ - "DataTableName" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "InputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" - }, - "OutputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" - }, - "SchemaConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { - "additionalProperties": false, - "properties": { - "KeyARN": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "KeyType" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.Deserializer": { - "additionalProperties": false, - "properties": { - "HiveJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" - }, - "OpenXJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints": { "additionalProperties": false, "properties": { "IntervalInSeconds": { @@ -70496,11 +71391,11 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": { "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" }, "CloudWatchLoggingOptions": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" @@ -70521,7 +71416,180 @@ var SamSchema = `{ "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "TypeName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "type": "string" + }, + "DataTableColumns": { + "type": "string" + }, + "DataTableName": { + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "type": "string" + }, + "DomainARN": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "IndexRotationPeriod": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" }, "RoleARN": { "type": "string" @@ -71973,6 +73041,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, @@ -72211,6 +73285,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CompatibleArchitectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "CompatibleRuntimes": { "items": { "type": "string" @@ -72811,7 +73891,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Location::GeofenceCollection": { + "AWS::Lightsail::Disk": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -72843,31 +73923,37 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CollectionName": { - "type": "string" + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" }, - "Description": { + "AvailabilityZone": { "type": "string" }, - "KmsKeyId": { + "DiskName": { "type": "string" }, - "PricingPlan": { - "type": "string" + "SizeInGb": { + "type": "number" }, - "PricingPlanDataSource": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CollectionName", - "PricingPlan" + "DiskName", + "SizeInGb" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::GeofenceCollection" + "AWS::Lightsail::Disk" ], "type": "string" }, @@ -72886,92 +73972,463 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Location::Map": { + "AWS::Lightsail::Disk.AddOn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AddOnType": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName", - "PricingPlan" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Status": { "type": "string" } }, "required": [ - "Type", - "Properties" + "AddOnType" ], "type": "object" }, - "AWS::Location::Map.MapConfiguration": { + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { "additionalProperties": false, "properties": { - "Style": { + "SnapshotTimeOfDay": { "type": "string" } }, - "required": [ - "Style" - ], "type": "object" }, - "AWS::Location::PlaceIndex": { + "AWS::Lightsail::Instance": { + "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": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlueprintId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Hardware": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware" + }, + "InstanceName": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + }, + "Networking": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" + }, + "State": { + "$ref": "#/definitions/AWS::Lightsail::Instance.State" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BlueprintId", + "BundleId", + "InstanceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Disk": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "AttachmentState": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "IOPS": { + "type": "number" + }, + "IsSystemDisk": { + "type": "boolean" + }, + "Path": { + "type": "string" + }, + "SizeInGb": { + "type": "string" + } + }, + "required": [ + "DiskName", + "Path" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Hardware": { + "additionalProperties": false, + "properties": { + "CpuCount": { + "type": "number" + }, + "Disks": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" + }, + "type": "array" + }, + "RamSizeInGb": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.MonthlyTransfer": { + "additionalProperties": false, + "properties": { + "GbPerMonthAllocated": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Networking": { + "additionalProperties": false, + "properties": { + "MonthlyTransfer": { + "type": "object" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Port" + }, + "type": "array" + } + }, + "required": [ + "Ports" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Port": { + "additionalProperties": false, + "properties": { + "AccessDirection": { + "type": "string" + }, + "AccessFrom": { + "type": "string" + }, + "AccessType": { + "type": "string" + }, + "CidrListAliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CommonName": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "Ipv6Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.State": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::GeofenceCollection": { + "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": { + "CollectionName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "PricingPlanDataSource": { + "type": "string" + } + }, + "required": [ + "CollectionName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::GeofenceCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74599,6 +76056,9 @@ var SamSchema = `{ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74825,10 +76285,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": { @@ -75631,7 +77106,6 @@ var SamSchema = `{ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -75672,6 +77146,9 @@ var SamSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75681,6 +77158,9 @@ var SamSchema = `{ "SourceArn": { "type": "string" }, + "SourceIngestPort": { + "type": "string" + }, "StreamId": { "type": "string" }, @@ -75869,6 +77349,9 @@ var SamSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75935,7 +77418,6 @@ var SamSchema = `{ } }, "required": [ - "Algorithm", "RoleArn", "SecretArn" ], @@ -80645,42 +82127,565 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" - }, - "type": "array" - }, - "LifecyclePolicy": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::MemoryDB::ACL": { + "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": { + "ACLName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ACLName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster": { + "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": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "FinalSnapshotName": { + "type": "string" + }, + "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": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { + "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" + }, + "ParameterGroupName": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ParameterGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::SubnetGroup": { + "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" + }, + "SubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "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" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { - "type": "string" + "AuthenticationMode": { + "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserName": { + "type": "string" } }, "required": [ - "ContainerName" + "AccessString", + "AuthenticationMode", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::MediaStore::Container" + "AWS::MemoryDB::User" ], "type": "string" }, @@ -80699,73 +82704,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, "AWS::Neptune::DBCluster": { "additionalProperties": false, "properties": { @@ -83034,62 +84972,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 +85277,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 +94295,9 @@ var SamSchema = `{ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92079,10 +94327,8 @@ var SamSchema = `{ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94907,6 +97153,9 @@ var SamSchema = `{ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97681,6 +99930,9 @@ var SamSchema = `{ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -98304,6 +100556,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CutoffBehavior": { + "type": "string" + }, "Description": { "type": "string" }, @@ -114268,6 +116523,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::RuleGroupsNamespace" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -114532,6 +116796,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Backup::BackupVault" }, + { + "$ref": "#/definitions/AWS::Backup::Framework" + }, + { + "$ref": "#/definitions/AWS::Backup::ReportPlan" + }, { "$ref": "#/definitions/AWS::Batch::ComputeEnvironment" }, @@ -115072,6 +117342,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -115480,6 +117753,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -115780,6 +118056,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Disk" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Instance" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -115903,6 +118185,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 +118260,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..927502b2c4 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -733,6 +733,224 @@ ], "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::RuleGroupsNamespace": { + "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": { + "Data": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Workspace": { + "type": "string" + } + }, + "required": [ + "Data", + "Workspace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::RuleGroupsNamespace" + ], + "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": { + "AlertManagerDefinition": { + "type": "string" + }, + "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 +11317,9 @@ "Name": { "type": "string" }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, "RelationalDatabaseConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" }, @@ -11252,6 +11473,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 +15112,9 @@ "EncryptionKeyArn": { "type": "string" }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, "Notifications": { "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" } @@ -14905,6 +15145,24 @@ ], "type": "object" }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "ChangeableForDays": { + "type": "number" + }, + "MaxRetentionDays": { + "type": "number" + }, + "MinRetentionDays": { + "type": "number" + } + }, + "required": [ + "MinRetentionDays" + ], + "type": "object" + }, "AWS::Backup::BackupVault.NotificationObjectType": { "additionalProperties": false, "properties": { @@ -14924,7 +15182,7 @@ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment": { + "AWS::Backup::Framework": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -14956,33 +15214,33 @@ "Properties": { "additionalProperties": false, "properties": { - "ComputeEnvironmentName": { - "type": "string" - }, - "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "FrameworkControls": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl" + }, + "type": "array" }, - "ServiceRole": { + "FrameworkDescription": { "type": "string" }, - "State": { + "FrameworkName": { "type": "string" }, - "Tags": { - "type": "object" - }, - "Type": { - "type": "string" + "FrameworkTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Type" + "FrameworkControls" ], "type": "object" }, "Type": { "enum": [ - "AWS::Batch::ComputeEnvironment" + "AWS::Backup::Framework" ], "type": "string" }, @@ -15001,111 +15259,303 @@ ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.ComputeResources": { + "AWS::Backup::Framework.ControlInputParameter": { "additionalProperties": false, "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BidPercentage": { - "type": "number" - }, - "DesiredvCpus": { - "type": "number" - }, - "Ec2Configuration": { - "items": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" - }, - "type": "array" - }, - "Ec2KeyPair": { - "type": "string" - }, - "ImageId": { - "type": "string" - }, - "InstanceRole": { - "type": "string" - }, - "InstanceTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" - }, - "MaxvCpus": { - "type": "number" - }, - "MinvCpus": { - "type": "number" - }, - "PlacementGroup": { - "type": "string" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SpotIamFleetRole": { + "ParameterName": { "type": "string" }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "type": "object" - }, - "Type": { + "ParameterValue": { "type": "string" } }, "required": [ - "MaxvCpus", - "Subnets", - "Type" + "ParameterName", + "ParameterValue" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "AWS::Backup::Framework.FrameworkControl": { "additionalProperties": false, "properties": { - "ImageIdOverride": { - "type": "string" + "ControlInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter" + }, + "type": "array" }, - "ImageType": { + "ControlName": { "type": "string" + }, + "ControlScope": { + "type": "object" } }, "required": [ - "ImageType" + "ControlName" ], "type": "object" }, - "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { - "additionalProperties": false, - "properties": { - "LaunchTemplateId": { - "type": "string" - }, - "LaunchTemplateName": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Batch::JobDefinition": { + "AWS::Backup::ReportPlan": { + "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": { + "ReportDeliveryChannel": { + "type": "object" + }, + "ReportPlanDescription": { + "type": "string" + }, + "ReportPlanName": { + "type": "string" + }, + "ReportPlanTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ReportSetting": { + "type": "object" + } + }, + "required": [ + "ReportDeliveryChannel", + "ReportSetting" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::ReportPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment": { + "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": { + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::ComputeEnvironment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "MaxvCpus", + "Subnets", + "Type" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34636,6 +35086,42 @@ ], "type": "object" }, + "AWS::EC2::LaunchTemplate.AcceleratorCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -34936,12 +35422,39 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.MetadataOptions": { "additionalProperties": false, "properties": { "HttpEndpoint": { "type": "string" }, + "HttpProtocolIpv6": { + "type": "string" + }, "HttpPutResponseHopLimit": { "type": "number" }, @@ -35020,6 +35533,18 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LaunchTemplate.Placement": { "additionalProperties": false, "properties": { @@ -35098,6 +35623,30 @@ }, "type": "object" }, + "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.VCpuCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::LocalGatewayRoute": { "additionalProperties": false, "properties": { @@ -39019,6 +39568,94 @@ ], "type": "object" }, + "AWS::EC2::TransitGatewayVpcAttachment": { + "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": { + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Options": { + "type": "object" + }, + "RemoveSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayVpcAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::EC2::VPC": { "additionalProperties": false, "properties": { @@ -40397,6 +41034,12 @@ "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" }, "type": "array" + }, + "RepositoryFilters": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" + }, + "type": "array" } }, "required": [ @@ -40404,6 +41047,22 @@ ], "type": "object" }, + "AWS::ECR::ReplicationConfiguration.RepositoryFilter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "FilterType": { + "type": "string" + } + }, + "required": [ + "Filter", + "FilterType" + ], + "type": "object" + }, "AWS::ECR::Repository": { "additionalProperties": false, "properties": { @@ -44633,6 +45292,12 @@ "EngineSecurityGroupId": { "type": "string" }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, "Name": { "type": "string" }, @@ -44668,7 +45333,6 @@ "Name", "ServiceRole", "SubnetIds", - "UserRole", "VpcId", "WorkspaceSecurityGroupId" ], @@ -57944,6 +58608,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 +60866,6 @@ "type": "string" } }, - "required": [ - "UserDataOverride" - ], "type": "object" }, "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { @@ -60177,9 +60954,6 @@ "type": "boolean" } }, - "required": [ - "UninstallAfterBuild" - ], "type": "object" }, "AWS::ImageBuilder::InfrastructureConfiguration": { @@ -60230,7 +61004,7 @@ "type": "string" }, "Logging": { - "type": "object" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" }, "Name": { "type": "string" @@ -62441,6 +63215,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, "Republish": { "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" }, @@ -62855,6 +63632,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": { @@ -67592,6 +68397,12 @@ }, "SharePointConfiguration": { "$ref": "#/definitions/AWS::Kendra::DataSource.SharePointConfiguration" + }, + "WebCrawlerConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerConfiguration" + }, + "WorkDocsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WorkDocsConfiguration" } }, "type": "object" @@ -67779,6 +68590,25 @@ }, "type": "object" }, + "AWS::Kendra::DataSource.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, "AWS::Kendra::DataSource.S3DataSourceConfiguration": { "additionalProperties": false, "properties": { @@ -68017,6 +68847,9 @@ "AWS::Kendra::DataSource.ServiceNowConfiguration": { "additionalProperties": false, "properties": { + "AuthenticationType": { + "type": "string" + }, "HostUrl": { "type": "string" }, @@ -68064,6 +68897,9 @@ }, "type": "array" }, + "FilterQuery": { + "type": "string" + }, "IncludeAttachmentFilePatterns": { "items": { "type": "string" @@ -68148,6 +68984,9 @@ "SharePointVersion": { "type": "string" }, + "SslCertificateS3Path": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path" + }, "Urls": { "items": { "type": "string" @@ -68177,6 +69016,161 @@ }, "type": "object" }, + "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "BasicAuthentication": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerBasicAuthentication" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Credentials", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration" + }, + "CrawlDepth": { + "type": "number" + }, + "MaxContentSizePerPageInMegaBytes": { + "type": "number" + }, + "MaxLinksPerPage": { + "type": "number" + }, + "MaxUrlsPerMinuteCrawlRate": { + "type": "number" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ProxyConfiguration" + }, + "UrlExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UrlInclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Urls": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerUrls" + } + }, + "required": [ + "Urls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration": { + "additionalProperties": false, + "properties": { + "SeedUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WebCrawlerMode": { + "type": "string" + } + }, + "required": [ + "SeedUrls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration": { + "additionalProperties": false, + "properties": { + "SiteMaps": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SiteMaps" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerUrls": { + "additionalProperties": false, + "properties": { + "SeedUrlConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration" + }, + "SiteMapsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WorkDocsConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlComments": { + "type": "boolean" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationId": { + "type": "string" + }, + "UseChangeLog": { + "type": "boolean" + } + }, + "required": [ + "OrganizationId" + ], + "type": "object" + }, "AWS::Kendra::Faq": { "additionalProperties": false, "properties": { @@ -70320,6 +71314,9 @@ "Properties": { "additionalProperties": false, "properties": { + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" + }, "DeliveryStreamEncryptionConfigurationInput": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" }, @@ -70379,109 +71376,7 @@ ], "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { - "additionalProperties": false, - "properties": { - "IntervalInSeconds": { - "type": "number" - }, - "SizeInMBs": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "LogGroupName": { - "type": "string" - }, - "LogStreamName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { - "additionalProperties": false, - "properties": { - "CopyOptions": { - "type": "string" - }, - "DataTableColumns": { - "type": "string" - }, - "DataTableName": { - "type": "string" - } - }, - "required": [ - "DataTableName" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "InputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" - }, - "OutputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" - }, - "SchemaConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { - "additionalProperties": false, - "properties": { - "KeyARN": { - "type": "string" - }, - "KeyType": { - "type": "string" - } - }, - "required": [ - "KeyType" - ], - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.Deserializer": { - "additionalProperties": false, - "properties": { - "HiveJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" - }, - "OpenXJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" - } - }, - "type": "object" - }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints": { "additionalProperties": false, "properties": { "IntervalInSeconds": { @@ -70493,11 +71388,11 @@ }, "type": "object" }, - "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": { "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" }, "CloudWatchLoggingOptions": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" @@ -70518,7 +71413,180 @@ "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "TypeName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "type": "string" + }, + "DataTableColumns": { + "type": "string" + }, + "DataTableName": { + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "type": "string" + }, + "DomainARN": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "IndexRotationPeriod": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" }, "RoleARN": { "type": "string" @@ -71970,6 +73038,12 @@ "Properties": { "additionalProperties": false, "properties": { + "Architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "Code": { "$ref": "#/definitions/AWS::Lambda::Function.Code" }, @@ -72208,6 +73282,12 @@ "Properties": { "additionalProperties": false, "properties": { + "CompatibleArchitectures": { + "items": { + "type": "string" + }, + "type": "array" + }, "CompatibleRuntimes": { "items": { "type": "string" @@ -72808,7 +73888,7 @@ ], "type": "object" }, - "AWS::Location::GeofenceCollection": { + "AWS::Lightsail::Disk": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -72840,31 +73920,37 @@ "Properties": { "additionalProperties": false, "properties": { - "CollectionName": { - "type": "string" + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" }, - "Description": { + "AvailabilityZone": { "type": "string" }, - "KmsKeyId": { + "DiskName": { "type": "string" }, - "PricingPlan": { - "type": "string" + "SizeInGb": { + "type": "number" }, - "PricingPlanDataSource": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "CollectionName", - "PricingPlan" + "DiskName", + "SizeInGb" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::GeofenceCollection" + "AWS::Lightsail::Disk" ], "type": "string" }, @@ -72883,92 +73969,463 @@ ], "type": "object" }, - "AWS::Location::Map": { + "AWS::Lightsail::Disk.AddOn": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "AddOnType": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName", - "PricingPlan" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Status": { "type": "string" } }, "required": [ - "Type", - "Properties" + "AddOnType" ], "type": "object" }, - "AWS::Location::Map.MapConfiguration": { + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { "additionalProperties": false, "properties": { - "Style": { + "SnapshotTimeOfDay": { "type": "string" } }, - "required": [ - "Style" - ], "type": "object" }, - "AWS::Location::PlaceIndex": { + "AWS::Lightsail::Instance": { + "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": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlueprintId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Hardware": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware" + }, + "InstanceName": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + }, + "Networking": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" + }, + "State": { + "$ref": "#/definitions/AWS::Lightsail::Instance.State" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BlueprintId", + "BundleId", + "InstanceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Disk": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "AttachmentState": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "IOPS": { + "type": "number" + }, + "IsSystemDisk": { + "type": "boolean" + }, + "Path": { + "type": "string" + }, + "SizeInGb": { + "type": "string" + } + }, + "required": [ + "DiskName", + "Path" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Hardware": { + "additionalProperties": false, + "properties": { + "CpuCount": { + "type": "number" + }, + "Disks": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" + }, + "type": "array" + }, + "RamSizeInGb": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.MonthlyTransfer": { + "additionalProperties": false, + "properties": { + "GbPerMonthAllocated": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Networking": { + "additionalProperties": false, + "properties": { + "MonthlyTransfer": { + "type": "object" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Port" + }, + "type": "array" + } + }, + "required": [ + "Ports" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Port": { + "additionalProperties": false, + "properties": { + "AccessDirection": { + "type": "string" + }, + "AccessFrom": { + "type": "string" + }, + "AccessType": { + "type": "string" + }, + "CidrListAliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CommonName": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "Ipv6Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.State": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::GeofenceCollection": { + "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": { + "CollectionName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "PricingPlanDataSource": { + "type": "string" + } + }, + "required": [ + "CollectionName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::GeofenceCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName", + "PricingPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74596,6 +76053,9 @@ }, "Tls": { "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" } }, "type": "object" @@ -74822,10 +76282,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": { @@ -75628,7 +77103,6 @@ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -75669,6 +77143,9 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75678,6 +77155,9 @@ "SourceArn": { "type": "string" }, + "SourceIngestPort": { + "type": "string" + }, "StreamId": { "type": "string" }, @@ -75866,6 +77346,9 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, @@ -75932,7 +77415,6 @@ } }, "required": [ - "Algorithm", "RoleArn", "SecretArn" ], @@ -80642,42 +82124,565 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" - }, - "type": "array" - }, - "LifecyclePolicy": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::MemoryDB::ACL": { + "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": { + "ACLName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ACLName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster": { + "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": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "FinalSnapshotName": { + "type": "string" + }, + "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": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { + "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" + }, + "ParameterGroupName": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ParameterGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::SubnetGroup": { + "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" + }, + "SubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "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" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { - "type": "string" + "AuthenticationMode": { + "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserName": { + "type": "string" } }, "required": [ - "ContainerName" + "AccessString", + "AuthenticationMode", + "UserName" ], "type": "object" }, "Type": { "enum": [ - "AWS::MediaStore::Container" + "AWS::MemoryDB::User" ], "type": "string" }, @@ -80696,73 +82701,6 @@ ], "type": "object" }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, "AWS::Neptune::DBCluster": { "additionalProperties": false, "properties": { @@ -83031,62 +84969,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 +85274,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 +94292,9 @@ "CurrentRevisionId": { "type": "string" }, + "Environment": { + "type": "string" + }, "Name": { "type": "string" }, @@ -92076,10 +94324,8 @@ } }, "required": [ - "RenderingEngine", "RobotSoftwareSuite", - "SimulationSoftwareSuite", - "Sources" + "SimulationSoftwareSuite" ], "type": "object" }, @@ -94904,6 +97150,9 @@ "AWS::S3::Bucket.MetricsConfiguration": { "additionalProperties": false, "properties": { + "AccessPointArn": { + "type": "string" + }, "Id": { "type": "string" }, @@ -97678,6 +99927,9 @@ "ReceiveMessageWaitTimeSeconds": { "type": "number" }, + "RedriveAllowPolicy": { + "type": "object" + }, "RedrivePolicy": { "type": "object" }, @@ -98301,6 +100553,9 @@ "Properties": { "additionalProperties": false, "properties": { + "CutoffBehavior": { + "type": "string" + }, "Description": { "type": "string" }, @@ -114265,6 +116520,15 @@ { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::RuleGroupsNamespace" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" }, @@ -114529,6 +116793,12 @@ { "$ref": "#/definitions/AWS::Backup::BackupVault" }, + { + "$ref": "#/definitions/AWS::Backup::Framework" + }, + { + "$ref": "#/definitions/AWS::Backup::ReportPlan" + }, { "$ref": "#/definitions/AWS::Batch::ComputeEnvironment" }, @@ -115069,6 +117339,9 @@ { "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, { "$ref": "#/definitions/AWS::EC2::VPC" }, @@ -115477,6 +117750,9 @@ { "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, { "$ref": "#/definitions/AWS::IAM::AccessKey" }, @@ -115777,6 +118053,12 @@ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Disk" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Instance" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -115900,6 +118182,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 +118257,9 @@ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OpenSearchService::Domain" + }, { "$ref": "#/definitions/AWS::OpsWorks::App" },