From eee912305e08843fc112940333b93a6fc6aaf0ed Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Mar 2021 11:18:45 +0400 Subject: [PATCH] fix(schema): CloudFormation Updates (#353) Co-authored-by: Paul Maddox --- .../acmpca/aws-acmpca-certificate_validity.go | 2 +- cloudformation/all.go | 551 ++ .../aws-athena-workgroup_engineversion.go | 40 + ...athena-workgroup_workgroupconfiguration.go | 5 + ...workgroup_workgroupconfigurationupdates.go | 5 + .../backup/aws-backup-backupvault.go | 2 +- .../cloud9/aws-cloud9-environmentec2.go | 5 + .../aws-cloudformation-moduleversion.go | 2 +- ...ebuild-reportgroup_s3reportexportconfig.go | 5 + .../databrew/aws-databrew-dataset.go | 5 + .../aws-detective-memberinvitation.go | 5 + .../ec2/aws-ec2-transitgatewayconnect.go | 117 + ...wayconnect_transitgatewayconnectoptions.go | 35 + .../ecr/aws-ecr-publicrepository.go | 6 + cloudformation/eks/aws-eks-addon.go | 132 + cloudformation/emr/aws-emr-studio.go | 157 + .../emr/aws-emr-studiosessionmapping.go | 121 + .../events/aws-events-apidestination.go | 131 + .../events/aws-events-connection.go | 121 + cloudformation/iam/aws-iam-oidcprovider.go | 122 + cloudformation/iam/aws-iam-samlprovider.go | 117 + .../iam/aws-iam-servercertificate.go | 132 + .../iam/aws-iam-virtualmfadevice.go | 122 + .../iot/aws-iot-accountauditconfiguration.go | 121 + ...itconfiguration_auditcheckconfiguration.go | 35 + ...tconfiguration_auditcheckconfigurations.go | 100 + ...itconfiguration_auditnotificationtarget.go | 45 + ...n_auditnotificationtargetconfigurations.go | 35 + cloudformation/iot/aws-iot-custommetric.go | 122 + cloudformation/iot/aws-iot-dimension.go | 122 + .../iot/aws-iot-mitigationaction.go | 122 + .../aws-iot-mitigationaction_actionparams.go | 60 + ...ationaction_addthingstothinggroupparams.go | 40 + ...mitigationaction_enableiotloggingparams.go | 40 + ...igationaction_publishfindingtosnsparams.go | 35 + ...ction_replacedefaultpolicyversionparams.go | 35 + ...igationaction_updatecacertificateparams.go | 35 + ...ionaction_updatedevicecertificateparams.go | 35 + cloudformation/iot/aws-iot-scheduledaudit.go | 132 + cloudformation/iot/aws-iot-securityprofile.go | 137 + .../aws-iot-securityprofile_alerttarget.go | 40 + .../iot/aws-iot-securityprofile_behavior.go | 55 + ...ws-iot-securityprofile_behaviorcriteria.go | 65 + ...yprofile_machinelearningdetectionconfig.go | 35 + ...aws-iot-securityprofile_metricdimension.go | 40 + .../aws-iot-securityprofile_metrictoretain.go | 40 + .../aws-iot-securityprofile_metricvalue.go | 60 + ...ot-securityprofile_statisticalthreshold.go | 35 + ...ewise-accesspolicy_accesspolicyidentity.go | 10 + .../aws-iotsitewise-accesspolicy_iamrole.go | 35 + .../aws-iotsitewise-accesspolicy_iamuser.go | 35 + .../iotsitewise/aws-iotsitewise-assetmodel.go | 5 + ...ise-assetmodel_assetmodelcompositemodel.go | 50 + ...tsitewise-assetmodel_assetmodelproperty.go | 5 + .../iotsitewise/aws-iotsitewise-portal.go | 5 + ...ws-pinpoint-campaign_campaignsmsmessage.go | 10 + .../s3outposts/aws-s3outposts-accesspoint.go | 121 + ...s3outposts-accesspoint_vpcconfiguration.go | 35 + .../s3outposts/aws-s3outposts-bucket.go | 122 + ...s-bucket_abortincompletemultipartupload.go | 35 + ...3outposts-bucket_lifecycleconfiguration.go | 35 + .../s3outposts/aws-s3outposts-bucket_rule.go | 60 + .../s3outposts/aws-s3outposts-bucketpolicy.go | 111 + .../s3outposts/aws-s3outposts-endpoint.go | 116 + ...ws-s3outposts-endpoint_networkinterface.go | 35 + .../sagemaker/aws-sagemaker-image.go | 127 + .../sagemaker/aws-sagemaker-imageversion.go | 111 + .../sagemaker/aws-sagemaker-model.go | 5 + .../aws-secretsmanager-secret.go | 5 + ...aws-secretsmanager-secret_replicaregion.go | 40 + .../synthetics/aws-synthetics-canary_code.go | 2 +- .../aws-synthetics-canary_runconfig.go | 4 +- schema/cloudformation.go | 4441 ++++++++++++----- schema/cloudformation.schema.json | 4441 ++++++++++++----- schema/sam.go | 4441 ++++++++++++----- schema/sam.schema.json | 4441 ++++++++++++----- 76 files changed, 17594 insertions(+), 4850 deletions(-) create mode 100644 cloudformation/athena/aws-athena-workgroup_engineversion.go create mode 100644 cloudformation/ec2/aws-ec2-transitgatewayconnect.go create mode 100644 cloudformation/ec2/aws-ec2-transitgatewayconnect_transitgatewayconnectoptions.go create mode 100644 cloudformation/eks/aws-eks-addon.go create mode 100644 cloudformation/emr/aws-emr-studio.go create mode 100644 cloudformation/emr/aws-emr-studiosessionmapping.go create mode 100644 cloudformation/events/aws-events-apidestination.go create mode 100644 cloudformation/events/aws-events-connection.go create mode 100644 cloudformation/iam/aws-iam-oidcprovider.go create mode 100644 cloudformation/iam/aws-iam-samlprovider.go create mode 100644 cloudformation/iam/aws-iam-servercertificate.go create mode 100644 cloudformation/iam/aws-iam-virtualmfadevice.go create mode 100644 cloudformation/iot/aws-iot-accountauditconfiguration.go create mode 100644 cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go create mode 100644 cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go create mode 100644 cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go create mode 100644 cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go create mode 100644 cloudformation/iot/aws-iot-custommetric.go create mode 100644 cloudformation/iot/aws-iot-dimension.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_actionparams.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go create mode 100644 cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go create mode 100644 cloudformation/iot/aws-iot-scheduledaudit.go create mode 100644 cloudformation/iot/aws-iot-securityprofile.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_alerttarget.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_behavior.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_metricdimension.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_metrictoretain.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_metricvalue.go create mode 100644 cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go create mode 100644 cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go create mode 100644 cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go create mode 100644 cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-accesspoint.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-accesspoint_vpcconfiguration.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-bucket.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-bucket_abortincompletemultipartupload.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-bucket_lifecycleconfiguration.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-bucket_rule.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-bucketpolicy.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-endpoint.go create mode 100644 cloudformation/s3outposts/aws-s3outposts-endpoint_networkinterface.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-image.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-imageversion.go create mode 100644 cloudformation/secretsmanager/aws-secretsmanager-secret_replicaregion.go diff --git a/cloudformation/acmpca/aws-acmpca-certificate_validity.go b/cloudformation/acmpca/aws-acmpca-certificate_validity.go index 98748a619e..2400946eab 100644 --- a/cloudformation/acmpca/aws-acmpca-certificate_validity.go +++ b/cloudformation/acmpca/aws-acmpca-certificate_validity.go @@ -16,7 +16,7 @@ type Certificate_Validity struct { // Value AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html#cfn-acmpca-certificate-validity-value - Value int `json:"Value"` + Value float64 `json:"Value"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/all.go b/cloudformation/all.go index 86f3a2011d..333aa274e5 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -125,6 +125,7 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/route53" "github.com/awslabs/goformation/v4/cloudformation/route53resolver" "github.com/awslabs/goformation/v4/cloudformation/s3" + "github.com/awslabs/goformation/v4/cloudformation/s3outposts" "github.com/awslabs/goformation/v4/cloudformation/sagemaker" "github.com/awslabs/goformation/v4/cloudformation/sdb" "github.com/awslabs/goformation/v4/cloudformation/secretsmanager" @@ -394,6 +395,7 @@ func AllResources() map[string]Resource { "AWS::EC2::TrafficMirrorTarget": &ec2.TrafficMirrorTarget{}, "AWS::EC2::TransitGateway": &ec2.TransitGateway{}, "AWS::EC2::TransitGatewayAttachment": &ec2.TransitGatewayAttachment{}, + "AWS::EC2::TransitGatewayConnect": &ec2.TransitGatewayConnect{}, "AWS::EC2::TransitGatewayMulticastDomain": &ec2.TransitGatewayMulticastDomain{}, "AWS::EC2::TransitGatewayMulticastDomainAssociation": &ec2.TransitGatewayMulticastDomainAssociation{}, "AWS::EC2::TransitGatewayMulticastGroupMember": &ec2.TransitGatewayMulticastGroupMember{}, @@ -430,6 +432,7 @@ func AllResources() map[string]Resource { "AWS::EFS::AccessPoint": &efs.AccessPoint{}, "AWS::EFS::FileSystem": &efs.FileSystem{}, "AWS::EFS::MountTarget": &efs.MountTarget{}, + "AWS::EKS::Addon": &eks.Addon{}, "AWS::EKS::Cluster": &eks.Cluster{}, "AWS::EKS::FargateProfile": &eks.FargateProfile{}, "AWS::EKS::Nodegroup": &eks.Nodegroup{}, @@ -438,6 +441,8 @@ func AllResources() map[string]Resource { "AWS::EMR::InstanceGroupConfig": &emr.InstanceGroupConfig{}, "AWS::EMR::SecurityConfiguration": &emr.SecurityConfiguration{}, "AWS::EMR::Step": &emr.Step{}, + "AWS::EMR::Studio": &emr.Studio{}, + "AWS::EMR::StudioSessionMapping": &emr.StudioSessionMapping{}, "AWS::EMRContainers::VirtualCluster": &emrcontainers.VirtualCluster{}, "AWS::ElastiCache::CacheCluster": &elasticache.CacheCluster{}, "AWS::ElastiCache::GlobalReplicationGroup": &elasticache.GlobalReplicationGroup{}, @@ -463,7 +468,9 @@ func AllResources() map[string]Resource { "AWS::EventSchemas::Registry": &eventschemas.Registry{}, "AWS::EventSchemas::RegistryPolicy": &eventschemas.RegistryPolicy{}, "AWS::EventSchemas::Schema": &eventschemas.Schema{}, + "AWS::Events::ApiDestination": &events.ApiDestination{}, "AWS::Events::Archive": &events.Archive{}, + "AWS::Events::Connection": &events.Connection{}, "AWS::Events::EventBus": &events.EventBus{}, "AWS::Events::EventBusPolicy": &events.EventBusPolicy{}, "AWS::Events::Rule": &events.Rule{}, @@ -525,11 +532,15 @@ func AllResources() map[string]Resource { "AWS::IAM::Group": &iam.Group{}, "AWS::IAM::InstanceProfile": &iam.InstanceProfile{}, "AWS::IAM::ManagedPolicy": &iam.ManagedPolicy{}, + "AWS::IAM::OIDCProvider": &iam.OIDCProvider{}, "AWS::IAM::Policy": &iam.Policy{}, "AWS::IAM::Role": &iam.Role{}, + "AWS::IAM::SAMLProvider": &iam.SAMLProvider{}, + "AWS::IAM::ServerCertificate": &iam.ServerCertificate{}, "AWS::IAM::ServiceLinkedRole": &iam.ServiceLinkedRole{}, "AWS::IAM::User": &iam.User{}, "AWS::IAM::UserToGroupAddition": &iam.UserToGroupAddition{}, + "AWS::IAM::VirtualMFADevice": &iam.VirtualMFADevice{}, "AWS::IVS::Channel": &ivs.Channel{}, "AWS::IVS::PlaybackKeyPair": &ivs.PlaybackKeyPair{}, "AWS::IVS::StreamKey": &ivs.StreamKey{}, @@ -546,12 +557,18 @@ func AllResources() map[string]Resource { "AWS::IoT1Click::Device": &iot1click.Device{}, "AWS::IoT1Click::Placement": &iot1click.Placement{}, "AWS::IoT1Click::Project": &iot1click.Project{}, + "AWS::IoT::AccountAuditConfiguration": &iot.AccountAuditConfiguration{}, "AWS::IoT::Authorizer": &iot.Authorizer{}, "AWS::IoT::Certificate": &iot.Certificate{}, + "AWS::IoT::CustomMetric": &iot.CustomMetric{}, + "AWS::IoT::Dimension": &iot.Dimension{}, "AWS::IoT::DomainConfiguration": &iot.DomainConfiguration{}, + "AWS::IoT::MitigationAction": &iot.MitigationAction{}, "AWS::IoT::Policy": &iot.Policy{}, "AWS::IoT::PolicyPrincipalAttachment": &iot.PolicyPrincipalAttachment{}, "AWS::IoT::ProvisioningTemplate": &iot.ProvisioningTemplate{}, + "AWS::IoT::ScheduledAudit": &iot.ScheduledAudit{}, + "AWS::IoT::SecurityProfile": &iot.SecurityProfile{}, "AWS::IoT::Thing": &iot.Thing{}, "AWS::IoT::ThingPrincipalAttachment": &iot.ThingPrincipalAttachment{}, "AWS::IoT::TopicRule": &iot.TopicRule{}, @@ -727,6 +744,10 @@ func AllResources() map[string]Resource { "AWS::S3::Bucket": &s3.Bucket{}, "AWS::S3::BucketPolicy": &s3.BucketPolicy{}, "AWS::S3::StorageLens": &s3.StorageLens{}, + "AWS::S3Outposts::AccessPoint": &s3outposts.AccessPoint{}, + "AWS::S3Outposts::Bucket": &s3outposts.Bucket{}, + "AWS::S3Outposts::BucketPolicy": &s3outposts.BucketPolicy{}, + "AWS::S3Outposts::Endpoint": &s3outposts.Endpoint{}, "AWS::SDB::Domain": &sdb.Domain{}, "AWS::SES::ConfigurationSet": &ses.ConfigurationSet{}, "AWS::SES::ConfigurationSetEventDestination": &ses.ConfigurationSetEventDestination{}, @@ -760,6 +781,8 @@ func AllResources() map[string]Resource { "AWS::SageMaker::Endpoint": &sagemaker.Endpoint{}, "AWS::SageMaker::EndpointConfig": &sagemaker.EndpointConfig{}, "AWS::SageMaker::FeatureGroup": &sagemaker.FeatureGroup{}, + "AWS::SageMaker::Image": &sagemaker.Image{}, + "AWS::SageMaker::ImageVersion": &sagemaker.ImageVersion{}, "AWS::SageMaker::Model": &sagemaker.Model{}, "AWS::SageMaker::ModelBiasJobDefinition": &sagemaker.ModelBiasJobDefinition{}, "AWS::SageMaker::ModelExplainabilityJobDefinition": &sagemaker.ModelExplainabilityJobDefinition{}, @@ -6654,6 +6677,30 @@ func (t *Template) GetEC2TransitGatewayAttachmentWithName(name string) (*ec2.Tra return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayAttachment not found", name) } +// GetAllEC2TransitGatewayConnectResources retrieves all ec2.TransitGatewayConnect items from an AWS CloudFormation template +func (t *Template) GetAllEC2TransitGatewayConnectResources() map[string]*ec2.TransitGatewayConnect { + results := map[string]*ec2.TransitGatewayConnect{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.TransitGatewayConnect: + results[name] = resource + } + } + return results +} + +// GetEC2TransitGatewayConnectWithName retrieves all ec2.TransitGatewayConnect items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2TransitGatewayConnectWithName(name string) (*ec2.TransitGatewayConnect, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.TransitGatewayConnect: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayConnect not found", name) +} + // GetAllEC2TransitGatewayMulticastDomainResources retrieves all ec2.TransitGatewayMulticastDomain items from an AWS CloudFormation template func (t *Template) GetAllEC2TransitGatewayMulticastDomainResources() map[string]*ec2.TransitGatewayMulticastDomain { results := map[string]*ec2.TransitGatewayMulticastDomain{} @@ -7518,6 +7565,30 @@ func (t *Template) GetEFSMountTargetWithName(name string) (*efs.MountTarget, err return nil, fmt.Errorf("resource %q of type efs.MountTarget not found", name) } +// GetAllEKSAddonResources retrieves all eks.Addon items from an AWS CloudFormation template +func (t *Template) GetAllEKSAddonResources() map[string]*eks.Addon { + results := map[string]*eks.Addon{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *eks.Addon: + results[name] = resource + } + } + return results +} + +// GetEKSAddonWithName retrieves all eks.Addon items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEKSAddonWithName(name string) (*eks.Addon, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *eks.Addon: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type eks.Addon not found", name) +} + // GetAllEKSClusterResources retrieves all eks.Cluster items from an AWS CloudFormation template func (t *Template) GetAllEKSClusterResources() map[string]*eks.Cluster { results := map[string]*eks.Cluster{} @@ -7710,6 +7781,54 @@ func (t *Template) GetEMRStepWithName(name string) (*emr.Step, error) { return nil, fmt.Errorf("resource %q of type emr.Step not found", name) } +// GetAllEMRStudioResources retrieves all emr.Studio items from an AWS CloudFormation template +func (t *Template) GetAllEMRStudioResources() map[string]*emr.Studio { + results := map[string]*emr.Studio{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *emr.Studio: + results[name] = resource + } + } + return results +} + +// GetEMRStudioWithName retrieves all emr.Studio items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEMRStudioWithName(name string) (*emr.Studio, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *emr.Studio: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type emr.Studio not found", name) +} + +// GetAllEMRStudioSessionMappingResources retrieves all emr.StudioSessionMapping items from an AWS CloudFormation template +func (t *Template) GetAllEMRStudioSessionMappingResources() map[string]*emr.StudioSessionMapping { + results := map[string]*emr.StudioSessionMapping{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *emr.StudioSessionMapping: + results[name] = resource + } + } + return results +} + +// GetEMRStudioSessionMappingWithName retrieves all emr.StudioSessionMapping items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEMRStudioSessionMappingWithName(name string) (*emr.StudioSessionMapping, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *emr.StudioSessionMapping: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type emr.StudioSessionMapping not found", name) +} + // GetAllEMRContainersVirtualClusterResources retrieves all emrcontainers.VirtualCluster items from an AWS CloudFormation template func (t *Template) GetAllEMRContainersVirtualClusterResources() map[string]*emrcontainers.VirtualCluster { results := map[string]*emrcontainers.VirtualCluster{} @@ -8310,6 +8429,30 @@ func (t *Template) GetEventSchemasSchemaWithName(name string) (*eventschemas.Sch return nil, fmt.Errorf("resource %q of type eventschemas.Schema not found", name) } +// GetAllEventsApiDestinationResources retrieves all events.ApiDestination items from an AWS CloudFormation template +func (t *Template) GetAllEventsApiDestinationResources() map[string]*events.ApiDestination { + results := map[string]*events.ApiDestination{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *events.ApiDestination: + results[name] = resource + } + } + return results +} + +// GetEventsApiDestinationWithName retrieves all events.ApiDestination items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEventsApiDestinationWithName(name string) (*events.ApiDestination, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *events.ApiDestination: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type events.ApiDestination not found", name) +} + // GetAllEventsArchiveResources retrieves all events.Archive items from an AWS CloudFormation template func (t *Template) GetAllEventsArchiveResources() map[string]*events.Archive { results := map[string]*events.Archive{} @@ -8334,6 +8477,30 @@ func (t *Template) GetEventsArchiveWithName(name string) (*events.Archive, error return nil, fmt.Errorf("resource %q of type events.Archive not found", name) } +// GetAllEventsConnectionResources retrieves all events.Connection items from an AWS CloudFormation template +func (t *Template) GetAllEventsConnectionResources() map[string]*events.Connection { + results := map[string]*events.Connection{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *events.Connection: + results[name] = resource + } + } + return results +} + +// GetEventsConnectionWithName retrieves all events.Connection items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEventsConnectionWithName(name string) (*events.Connection, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *events.Connection: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type events.Connection not found", name) +} + // GetAllEventsEventBusResources retrieves all events.EventBus items from an AWS CloudFormation template func (t *Template) GetAllEventsEventBusResources() map[string]*events.EventBus { results := map[string]*events.EventBus{} @@ -9798,6 +9965,30 @@ func (t *Template) GetIAMManagedPolicyWithName(name string) (*iam.ManagedPolicy, return nil, fmt.Errorf("resource %q of type iam.ManagedPolicy not found", name) } +// GetAllIAMOIDCProviderResources retrieves all iam.OIDCProvider items from an AWS CloudFormation template +func (t *Template) GetAllIAMOIDCProviderResources() map[string]*iam.OIDCProvider { + results := map[string]*iam.OIDCProvider{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.OIDCProvider: + results[name] = resource + } + } + return results +} + +// GetIAMOIDCProviderWithName retrieves all iam.OIDCProvider items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMOIDCProviderWithName(name string) (*iam.OIDCProvider, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.OIDCProvider: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.OIDCProvider not found", name) +} + // GetAllIAMPolicyResources retrieves all iam.Policy items from an AWS CloudFormation template func (t *Template) GetAllIAMPolicyResources() map[string]*iam.Policy { results := map[string]*iam.Policy{} @@ -9846,6 +10037,54 @@ func (t *Template) GetIAMRoleWithName(name string) (*iam.Role, error) { return nil, fmt.Errorf("resource %q of type iam.Role not found", name) } +// GetAllIAMSAMLProviderResources retrieves all iam.SAMLProvider items from an AWS CloudFormation template +func (t *Template) GetAllIAMSAMLProviderResources() map[string]*iam.SAMLProvider { + results := map[string]*iam.SAMLProvider{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.SAMLProvider: + results[name] = resource + } + } + return results +} + +// GetIAMSAMLProviderWithName retrieves all iam.SAMLProvider items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMSAMLProviderWithName(name string) (*iam.SAMLProvider, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.SAMLProvider: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.SAMLProvider not found", name) +} + +// GetAllIAMServerCertificateResources retrieves all iam.ServerCertificate items from an AWS CloudFormation template +func (t *Template) GetAllIAMServerCertificateResources() map[string]*iam.ServerCertificate { + results := map[string]*iam.ServerCertificate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.ServerCertificate: + results[name] = resource + } + } + return results +} + +// GetIAMServerCertificateWithName retrieves all iam.ServerCertificate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMServerCertificateWithName(name string) (*iam.ServerCertificate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.ServerCertificate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.ServerCertificate not found", name) +} + // GetAllIAMServiceLinkedRoleResources retrieves all iam.ServiceLinkedRole items from an AWS CloudFormation template func (t *Template) GetAllIAMServiceLinkedRoleResources() map[string]*iam.ServiceLinkedRole { results := map[string]*iam.ServiceLinkedRole{} @@ -9918,6 +10157,30 @@ func (t *Template) GetIAMUserToGroupAdditionWithName(name string) (*iam.UserToGr return nil, fmt.Errorf("resource %q of type iam.UserToGroupAddition not found", name) } +// GetAllIAMVirtualMFADeviceResources retrieves all iam.VirtualMFADevice items from an AWS CloudFormation template +func (t *Template) GetAllIAMVirtualMFADeviceResources() map[string]*iam.VirtualMFADevice { + results := map[string]*iam.VirtualMFADevice{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.VirtualMFADevice: + results[name] = resource + } + } + return results +} + +// GetIAMVirtualMFADeviceWithName retrieves all iam.VirtualMFADevice items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMVirtualMFADeviceWithName(name string) (*iam.VirtualMFADevice, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.VirtualMFADevice: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.VirtualMFADevice not found", name) +} + // GetAllIVSChannelResources retrieves all ivs.Channel items from an AWS CloudFormation template func (t *Template) GetAllIVSChannelResources() map[string]*ivs.Channel { results := map[string]*ivs.Channel{} @@ -10302,6 +10565,30 @@ func (t *Template) GetIoT1ClickProjectWithName(name string) (*iot1click.Project, return nil, fmt.Errorf("resource %q of type iot1click.Project not found", name) } +// GetAllIoTAccountAuditConfigurationResources retrieves all iot.AccountAuditConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllIoTAccountAuditConfigurationResources() map[string]*iot.AccountAuditConfiguration { + results := map[string]*iot.AccountAuditConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.AccountAuditConfiguration: + results[name] = resource + } + } + return results +} + +// GetIoTAccountAuditConfigurationWithName retrieves all iot.AccountAuditConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTAccountAuditConfigurationWithName(name string) (*iot.AccountAuditConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.AccountAuditConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.AccountAuditConfiguration not found", name) +} + // GetAllIoTAuthorizerResources retrieves all iot.Authorizer items from an AWS CloudFormation template func (t *Template) GetAllIoTAuthorizerResources() map[string]*iot.Authorizer { results := map[string]*iot.Authorizer{} @@ -10350,6 +10637,54 @@ func (t *Template) GetIoTCertificateWithName(name string) (*iot.Certificate, err return nil, fmt.Errorf("resource %q of type iot.Certificate not found", name) } +// GetAllIoTCustomMetricResources retrieves all iot.CustomMetric items from an AWS CloudFormation template +func (t *Template) GetAllIoTCustomMetricResources() map[string]*iot.CustomMetric { + results := map[string]*iot.CustomMetric{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.CustomMetric: + results[name] = resource + } + } + return results +} + +// GetIoTCustomMetricWithName retrieves all iot.CustomMetric items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTCustomMetricWithName(name string) (*iot.CustomMetric, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.CustomMetric: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.CustomMetric not found", name) +} + +// GetAllIoTDimensionResources retrieves all iot.Dimension items from an AWS CloudFormation template +func (t *Template) GetAllIoTDimensionResources() map[string]*iot.Dimension { + results := map[string]*iot.Dimension{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.Dimension: + results[name] = resource + } + } + return results +} + +// GetIoTDimensionWithName retrieves all iot.Dimension items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTDimensionWithName(name string) (*iot.Dimension, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.Dimension: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.Dimension not found", name) +} + // GetAllIoTDomainConfigurationResources retrieves all iot.DomainConfiguration items from an AWS CloudFormation template func (t *Template) GetAllIoTDomainConfigurationResources() map[string]*iot.DomainConfiguration { results := map[string]*iot.DomainConfiguration{} @@ -10374,6 +10709,30 @@ func (t *Template) GetIoTDomainConfigurationWithName(name string) (*iot.DomainCo return nil, fmt.Errorf("resource %q of type iot.DomainConfiguration not found", name) } +// GetAllIoTMitigationActionResources retrieves all iot.MitigationAction items from an AWS CloudFormation template +func (t *Template) GetAllIoTMitigationActionResources() map[string]*iot.MitigationAction { + results := map[string]*iot.MitigationAction{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.MitigationAction: + results[name] = resource + } + } + return results +} + +// GetIoTMitigationActionWithName retrieves all iot.MitigationAction items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTMitigationActionWithName(name string) (*iot.MitigationAction, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.MitigationAction: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.MitigationAction not found", name) +} + // GetAllIoTPolicyResources retrieves all iot.Policy items from an AWS CloudFormation template func (t *Template) GetAllIoTPolicyResources() map[string]*iot.Policy { results := map[string]*iot.Policy{} @@ -10446,6 +10805,54 @@ func (t *Template) GetIoTProvisioningTemplateWithName(name string) (*iot.Provisi return nil, fmt.Errorf("resource %q of type iot.ProvisioningTemplate not found", name) } +// GetAllIoTScheduledAuditResources retrieves all iot.ScheduledAudit items from an AWS CloudFormation template +func (t *Template) GetAllIoTScheduledAuditResources() map[string]*iot.ScheduledAudit { + results := map[string]*iot.ScheduledAudit{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.ScheduledAudit: + results[name] = resource + } + } + return results +} + +// GetIoTScheduledAuditWithName retrieves all iot.ScheduledAudit items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTScheduledAuditWithName(name string) (*iot.ScheduledAudit, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.ScheduledAudit: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.ScheduledAudit not found", name) +} + +// GetAllIoTSecurityProfileResources retrieves all iot.SecurityProfile items from an AWS CloudFormation template +func (t *Template) GetAllIoTSecurityProfileResources() map[string]*iot.SecurityProfile { + results := map[string]*iot.SecurityProfile{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.SecurityProfile: + results[name] = resource + } + } + return results +} + +// GetIoTSecurityProfileWithName retrieves all iot.SecurityProfile items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTSecurityProfileWithName(name string) (*iot.SecurityProfile, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.SecurityProfile: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.SecurityProfile not found", name) +} + // GetAllIoTThingResources retrieves all iot.Thing items from an AWS CloudFormation template func (t *Template) GetAllIoTThingResources() map[string]*iot.Thing { results := map[string]*iot.Thing{} @@ -14646,6 +15053,102 @@ func (t *Template) GetS3StorageLensWithName(name string) (*s3.StorageLens, error return nil, fmt.Errorf("resource %q of type s3.StorageLens not found", name) } +// GetAllS3OutpostsAccessPointResources retrieves all s3outposts.AccessPoint items from an AWS CloudFormation template +func (t *Template) GetAllS3OutpostsAccessPointResources() map[string]*s3outposts.AccessPoint { + results := map[string]*s3outposts.AccessPoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *s3outposts.AccessPoint: + results[name] = resource + } + } + return results +} + +// GetS3OutpostsAccessPointWithName retrieves all s3outposts.AccessPoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetS3OutpostsAccessPointWithName(name string) (*s3outposts.AccessPoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *s3outposts.AccessPoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type s3outposts.AccessPoint not found", name) +} + +// GetAllS3OutpostsBucketResources retrieves all s3outposts.Bucket items from an AWS CloudFormation template +func (t *Template) GetAllS3OutpostsBucketResources() map[string]*s3outposts.Bucket { + results := map[string]*s3outposts.Bucket{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *s3outposts.Bucket: + results[name] = resource + } + } + return results +} + +// GetS3OutpostsBucketWithName retrieves all s3outposts.Bucket items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetS3OutpostsBucketWithName(name string) (*s3outposts.Bucket, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *s3outposts.Bucket: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type s3outposts.Bucket not found", name) +} + +// GetAllS3OutpostsBucketPolicyResources retrieves all s3outposts.BucketPolicy items from an AWS CloudFormation template +func (t *Template) GetAllS3OutpostsBucketPolicyResources() map[string]*s3outposts.BucketPolicy { + results := map[string]*s3outposts.BucketPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *s3outposts.BucketPolicy: + results[name] = resource + } + } + return results +} + +// GetS3OutpostsBucketPolicyWithName retrieves all s3outposts.BucketPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetS3OutpostsBucketPolicyWithName(name string) (*s3outposts.BucketPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *s3outposts.BucketPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type s3outposts.BucketPolicy not found", name) +} + +// GetAllS3OutpostsEndpointResources retrieves all s3outposts.Endpoint items from an AWS CloudFormation template +func (t *Template) GetAllS3OutpostsEndpointResources() map[string]*s3outposts.Endpoint { + results := map[string]*s3outposts.Endpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *s3outposts.Endpoint: + results[name] = resource + } + } + return results +} + +// GetS3OutpostsEndpointWithName retrieves all s3outposts.Endpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetS3OutpostsEndpointWithName(name string) (*s3outposts.Endpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *s3outposts.Endpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type s3outposts.Endpoint not found", name) +} + // GetAllSDBDomainResources retrieves all sdb.Domain items from an AWS CloudFormation template func (t *Template) GetAllSDBDomainResources() map[string]*sdb.Domain { results := map[string]*sdb.Domain{} @@ -15438,6 +15941,54 @@ func (t *Template) GetSageMakerFeatureGroupWithName(name string) (*sagemaker.Fea return nil, fmt.Errorf("resource %q of type sagemaker.FeatureGroup not found", name) } +// GetAllSageMakerImageResources retrieves all sagemaker.Image items from an AWS CloudFormation template +func (t *Template) GetAllSageMakerImageResources() map[string]*sagemaker.Image { + results := map[string]*sagemaker.Image{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *sagemaker.Image: + results[name] = resource + } + } + return results +} + +// GetSageMakerImageWithName retrieves all sagemaker.Image items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSageMakerImageWithName(name string) (*sagemaker.Image, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *sagemaker.Image: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type sagemaker.Image not found", name) +} + +// GetAllSageMakerImageVersionResources retrieves all sagemaker.ImageVersion items from an AWS CloudFormation template +func (t *Template) GetAllSageMakerImageVersionResources() map[string]*sagemaker.ImageVersion { + results := map[string]*sagemaker.ImageVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *sagemaker.ImageVersion: + results[name] = resource + } + } + return results +} + +// GetSageMakerImageVersionWithName retrieves all sagemaker.ImageVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSageMakerImageVersionWithName(name string) (*sagemaker.ImageVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *sagemaker.ImageVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type sagemaker.ImageVersion not found", name) +} + // GetAllSageMakerModelResources retrieves all sagemaker.Model items from an AWS CloudFormation template func (t *Template) GetAllSageMakerModelResources() map[string]*sagemaker.Model { results := map[string]*sagemaker.Model{} diff --git a/cloudformation/athena/aws-athena-workgroup_engineversion.go b/cloudformation/athena/aws-athena-workgroup_engineversion.go new file mode 100644 index 0000000000..2279cfab94 --- /dev/null +++ b/cloudformation/athena/aws-athena-workgroup_engineversion.go @@ -0,0 +1,40 @@ +package athena + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// WorkGroup_EngineVersion AWS CloudFormation Resource (AWS::Athena::WorkGroup.EngineVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html +type WorkGroup_EngineVersion struct { + + // EffectiveEngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html#cfn-athena-workgroup-engineversion-effectiveengineversion + EffectiveEngineVersion string `json:"EffectiveEngineVersion,omitempty"` + + // SelectedEngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html#cfn-athena-workgroup-engineversion-selectedengineversion + SelectedEngineVersion string `json:"SelectedEngineVersion,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 *WorkGroup_EngineVersion) AWSCloudFormationType() string { + return "AWS::Athena::WorkGroup.EngineVersion" +} diff --git a/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go b/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go index 268048c43f..a489ec7b11 100644 --- a/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go +++ b/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go @@ -18,6 +18,11 @@ type WorkGroup_WorkGroupConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-enforceworkgroupconfiguration EnforceWorkGroupConfiguration bool `json:"EnforceWorkGroupConfiguration,omitempty"` + // EngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-engineversion + EngineVersion *WorkGroup_EngineVersion `json:"EngineVersion,omitempty"` + // PublishCloudWatchMetricsEnabled AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-publishcloudwatchmetricsenabled diff --git a/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go b/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go index 247a9175ed..6bb1be9d87 100644 --- a/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go +++ b/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go @@ -18,6 +18,11 @@ type WorkGroup_WorkGroupConfigurationUpdates struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration EnforceWorkGroupConfiguration bool `json:"EnforceWorkGroupConfiguration,omitempty"` + // EngineVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-engineversion + EngineVersion *WorkGroup_EngineVersion `json:"EngineVersion,omitempty"` + // PublishCloudWatchMetricsEnabled AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-publishcloudwatchmetricsenabled diff --git a/cloudformation/backup/aws-backup-backupvault.go b/cloudformation/backup/aws-backup-backupvault.go index 8f1aaa7161..3f2d79e601 100644 --- a/cloudformation/backup/aws-backup-backupvault.go +++ b/cloudformation/backup/aws-backup-backupvault.go @@ -25,7 +25,7 @@ type BackupVault struct { // BackupVaultTags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags - BackupVaultTags interface{} `json:"BackupVaultTags,omitempty"` + BackupVaultTags map[string]string `json:"BackupVaultTags,omitempty"` // EncryptionKeyArn AWS CloudFormation Property // Required: false diff --git a/cloudformation/cloud9/aws-cloud9-environmentec2.go b/cloudformation/cloud9/aws-cloud9-environmentec2.go index bdfed17064..52b1776a6a 100644 --- a/cloudformation/cloud9/aws-cloud9-environmentec2.go +++ b/cloudformation/cloud9/aws-cloud9-environmentec2.go @@ -28,6 +28,11 @@ type EnvironmentEC2 struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-description Description string `json:"Description,omitempty"` + // ImageId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-imageid + ImageId string `json:"ImageId,omitempty"` + // InstanceType AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-instancetype diff --git a/cloudformation/cloudformation/aws-cloudformation-moduleversion.go b/cloudformation/cloudformation/aws-cloudformation-moduleversion.go index 1cfd2691c8..8490e25b57 100644 --- a/cloudformation/cloudformation/aws-cloudformation-moduleversion.go +++ b/cloudformation/cloudformation/aws-cloudformation-moduleversion.go @@ -18,7 +18,7 @@ type ModuleVersion struct { ModuleName string `json:"ModuleName,omitempty"` // ModulePackage AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html#cfn-cloudformation-moduleversion-modulepackage ModulePackage string `json:"ModulePackage,omitempty"` diff --git a/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go b/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go index a5426ea1b6..3080a7c2b7 100644 --- a/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go +++ b/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go @@ -13,6 +13,11 @@ type ReportGroup_S3ReportExportConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-bucket Bucket string `json:"Bucket,omitempty"` + // BucketOwner AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-bucketowner + BucketOwner string `json:"BucketOwner,omitempty"` + // EncryptionDisabled AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-encryptiondisabled diff --git a/cloudformation/databrew/aws-databrew-dataset.go b/cloudformation/databrew/aws-databrew-dataset.go index 83ae5c32b9..9f9283713b 100644 --- a/cloudformation/databrew/aws-databrew-dataset.go +++ b/cloudformation/databrew/aws-databrew-dataset.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html type Dataset struct { + // Format AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-format + Format string `json:"Format,omitempty"` + // FormatOptions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-formatoptions diff --git a/cloudformation/detective/aws-detective-memberinvitation.go b/cloudformation/detective/aws-detective-memberinvitation.go index 92a710e19a..b175120f19 100644 --- a/cloudformation/detective/aws-detective-memberinvitation.go +++ b/cloudformation/detective/aws-detective-memberinvitation.go @@ -12,6 +12,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html type MemberInvitation struct { + // DisableEmailNotification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-disableemailnotification + DisableEmailNotification bool `json:"DisableEmailNotification,omitempty"` + // GraphArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-grapharn diff --git a/cloudformation/ec2/aws-ec2-transitgatewayconnect.go b/cloudformation/ec2/aws-ec2-transitgatewayconnect.go new file mode 100644 index 0000000000..85a24b70fd --- /dev/null +++ b/cloudformation/ec2/aws-ec2-transitgatewayconnect.go @@ -0,0 +1,117 @@ +package ec2 + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// TransitGatewayConnect AWS CloudFormation Resource (AWS::EC2::TransitGatewayConnect) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html +type TransitGatewayConnect struct { + + // Options AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html#cfn-ec2-transitgatewayconnect-options + Options *TransitGatewayConnect_TransitGatewayConnectOptions `json:"Options,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html#cfn-ec2-transitgatewayconnect-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TransportTransitGatewayAttachmentId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html#cfn-ec2-transitgatewayconnect-transporttransitgatewayattachmentid + TransportTransitGatewayAttachmentId string `json:"TransportTransitGatewayAttachmentId,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 *TransitGatewayConnect) AWSCloudFormationType() string { + return "AWS::EC2::TransitGatewayConnect" +} + +// 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 TransitGatewayConnect) MarshalJSON() ([]byte, error) { + type Properties TransitGatewayConnect + 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 *TransitGatewayConnect) UnmarshalJSON(b []byte) error { + type Properties TransitGatewayConnect + 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 = TransitGatewayConnect(*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-transitgatewayconnect_transitgatewayconnectoptions.go b/cloudformation/ec2/aws-ec2-transitgatewayconnect_transitgatewayconnectoptions.go new file mode 100644 index 0000000000..cff45c6c05 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-transitgatewayconnect_transitgatewayconnectoptions.go @@ -0,0 +1,35 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// TransitGatewayConnect_TransitGatewayConnectOptions AWS CloudFormation Resource (AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html +type TransitGatewayConnect_TransitGatewayConnectOptions struct { + + // Protocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html#cfn-ec2-transitgatewayconnect-transitgatewayconnectoptions-protocol + Protocol string `json:"Protocol,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 *TransitGatewayConnect_TransitGatewayConnectOptions) AWSCloudFormationType() string { + return "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" +} diff --git a/cloudformation/ecr/aws-ecr-publicrepository.go b/cloudformation/ecr/aws-ecr-publicrepository.go index 383a54e536..689dcb407e 100644 --- a/cloudformation/ecr/aws-ecr-publicrepository.go +++ b/cloudformation/ecr/aws-ecr-publicrepository.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" ) // PublicRepository AWS CloudFormation Resource (AWS::ECR::PublicRepository) @@ -27,6 +28,11 @@ type PublicRepository struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html#cfn-ecr-publicrepository-repositorypolicytext RepositoryPolicyText interface{} `json:"RepositoryPolicyText,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html#cfn-ecr-publicrepository-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/eks/aws-eks-addon.go b/cloudformation/eks/aws-eks-addon.go new file mode 100644 index 0000000000..1b005b4fe6 --- /dev/null +++ b/cloudformation/eks/aws-eks-addon.go @@ -0,0 +1,132 @@ +package eks + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Addon AWS CloudFormation Resource (AWS::EKS::Addon) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html +type Addon struct { + + // AddonName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonname + AddonName string `json:"AddonName,omitempty"` + + // AddonVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonversion + AddonVersion string `json:"AddonVersion,omitempty"` + + // ClusterName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-clustername + ClusterName string `json:"ClusterName,omitempty"` + + // ResolveConflicts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-resolveconflicts + ResolveConflicts string `json:"ResolveConflicts,omitempty"` + + // ServiceAccountRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-serviceaccountrolearn + ServiceAccountRoleArn string `json:"ServiceAccountRoleArn,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-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 *Addon) AWSCloudFormationType() string { + return "AWS::EKS::Addon" +} + +// 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 Addon) MarshalJSON() ([]byte, error) { + type Properties Addon + 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 *Addon) UnmarshalJSON(b []byte) error { + type Properties Addon + 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 = Addon(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/emr/aws-emr-studio.go b/cloudformation/emr/aws-emr-studio.go new file mode 100644 index 0000000000..6de052a020 --- /dev/null +++ b/cloudformation/emr/aws-emr-studio.go @@ -0,0 +1,157 @@ +package emr + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Studio AWS CloudFormation Resource (AWS::EMR::Studio) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html +type Studio struct { + + // AuthMode AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-authmode + AuthMode string `json:"AuthMode,omitempty"` + + // DefaultS3Location AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-defaults3location + DefaultS3Location string `json:"DefaultS3Location,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-description + Description string `json:"Description,omitempty"` + + // EngineSecurityGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-enginesecuritygroupid + EngineSecurityGroupId string `json:"EngineSecurityGroupId,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 + Name string `json:"Name,omitempty"` + + // ServiceRole AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-servicerole + ServiceRole string `json:"ServiceRole,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-subnetids + SubnetIds []string `json:"SubnetIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // UserRole AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-userrole + UserRole string `json:"UserRole,omitempty"` + + // VpcId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-vpcid + VpcId string `json:"VpcId,omitempty"` + + // WorkspaceSecurityGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-workspacesecuritygroupid + WorkspaceSecurityGroupId string `json:"WorkspaceSecurityGroupId,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 *Studio) AWSCloudFormationType() string { + return "AWS::EMR::Studio" +} + +// 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 Studio) MarshalJSON() ([]byte, error) { + type Properties Studio + 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 *Studio) UnmarshalJSON(b []byte) error { + type Properties Studio + 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 = Studio(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/emr/aws-emr-studiosessionmapping.go b/cloudformation/emr/aws-emr-studiosessionmapping.go new file mode 100644 index 0000000000..bd54c5a9f7 --- /dev/null +++ b/cloudformation/emr/aws-emr-studiosessionmapping.go @@ -0,0 +1,121 @@ +package emr + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// StudioSessionMapping AWS CloudFormation Resource (AWS::EMR::StudioSessionMapping) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html +type StudioSessionMapping struct { + + // IdentityName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-identityname + IdentityName string `json:"IdentityName,omitempty"` + + // IdentityType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-identitytype + IdentityType string `json:"IdentityType,omitempty"` + + // SessionPolicyArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-sessionpolicyarn + SessionPolicyArn string `json:"SessionPolicyArn,omitempty"` + + // StudioId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-studioid + StudioId string `json:"StudioId,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 *StudioSessionMapping) AWSCloudFormationType() string { + return "AWS::EMR::StudioSessionMapping" +} + +// 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 StudioSessionMapping) MarshalJSON() ([]byte, error) { + type Properties StudioSessionMapping + 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 *StudioSessionMapping) UnmarshalJSON(b []byte) error { + type Properties StudioSessionMapping + 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 = StudioSessionMapping(*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/events/aws-events-apidestination.go b/cloudformation/events/aws-events-apidestination.go new file mode 100644 index 0000000000..c96407ea50 --- /dev/null +++ b/cloudformation/events/aws-events-apidestination.go @@ -0,0 +1,131 @@ +package events + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// ApiDestination AWS CloudFormation Resource (AWS::Events::ApiDestination) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html +type ApiDestination struct { + + // ConnectionArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-connectionarn + ConnectionArn string `json:"ConnectionArn,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-description + Description string `json:"Description,omitempty"` + + // HttpMethod AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-httpmethod + HttpMethod string `json:"HttpMethod,omitempty"` + + // InvocationEndpoint AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-invocationendpoint + InvocationEndpoint string `json:"InvocationEndpoint,omitempty"` + + // InvocationRateLimitPerSecond AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-invocationratelimitpersecond + InvocationRateLimitPerSecond int `json:"InvocationRateLimitPerSecond,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-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 *ApiDestination) AWSCloudFormationType() string { + return "AWS::Events::ApiDestination" +} + +// 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 ApiDestination) MarshalJSON() ([]byte, error) { + type Properties ApiDestination + 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 *ApiDestination) UnmarshalJSON(b []byte) error { + type Properties ApiDestination + 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 = ApiDestination(*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/events/aws-events-connection.go b/cloudformation/events/aws-events-connection.go new file mode 100644 index 0000000000..96ef563224 --- /dev/null +++ b/cloudformation/events/aws-events-connection.go @@ -0,0 +1,121 @@ +package events + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Connection AWS CloudFormation Resource (AWS::Events::Connection) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html +type Connection struct { + + // AuthParameters AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-authparameters + AuthParameters interface{} `json:"AuthParameters,omitempty"` + + // AuthorizationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-authorizationtype + AuthorizationType string `json:"AuthorizationType,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-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 *Connection) AWSCloudFormationType() string { + return "AWS::Events::Connection" +} + +// 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 Connection) MarshalJSON() ([]byte, error) { + type Properties Connection + 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 *Connection) UnmarshalJSON(b []byte) error { + type Properties Connection + 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 = Connection(*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/iam/aws-iam-oidcprovider.go b/cloudformation/iam/aws-iam-oidcprovider.go new file mode 100644 index 0000000000..c3f2264117 --- /dev/null +++ b/cloudformation/iam/aws-iam-oidcprovider.go @@ -0,0 +1,122 @@ +package iam + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// OIDCProvider AWS CloudFormation Resource (AWS::IAM::OIDCProvider) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html +type OIDCProvider struct { + + // ClientIdList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-clientidlist + ClientIdList []string `json:"ClientIdList,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // ThumbprintList AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-thumbprintlist + ThumbprintList []string `json:"ThumbprintList,omitempty"` + + // Url AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-url + Url string `json:"Url,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 *OIDCProvider) AWSCloudFormationType() string { + return "AWS::IAM::OIDCProvider" +} + +// 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 OIDCProvider) MarshalJSON() ([]byte, error) { + type Properties OIDCProvider + 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 *OIDCProvider) UnmarshalJSON(b []byte) error { + type Properties OIDCProvider + 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 = OIDCProvider(*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/iam/aws-iam-samlprovider.go b/cloudformation/iam/aws-iam-samlprovider.go new file mode 100644 index 0000000000..fadf8572c6 --- /dev/null +++ b/cloudformation/iam/aws-iam-samlprovider.go @@ -0,0 +1,117 @@ +package iam + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// SAMLProvider AWS CloudFormation Resource (AWS::IAM::SAMLProvider) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html +type SAMLProvider struct { + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-name + Name string `json:"Name,omitempty"` + + // SamlMetadataDocument AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-samlmetadatadocument + SamlMetadataDocument string `json:"SamlMetadataDocument,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-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 *SAMLProvider) AWSCloudFormationType() string { + return "AWS::IAM::SAMLProvider" +} + +// 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 SAMLProvider) MarshalJSON() ([]byte, error) { + type Properties SAMLProvider + 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 *SAMLProvider) UnmarshalJSON(b []byte) error { + type Properties SAMLProvider + 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 = SAMLProvider(*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/iam/aws-iam-servercertificate.go b/cloudformation/iam/aws-iam-servercertificate.go new file mode 100644 index 0000000000..c916896cc7 --- /dev/null +++ b/cloudformation/iam/aws-iam-servercertificate.go @@ -0,0 +1,132 @@ +package iam + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// ServerCertificate AWS CloudFormation Resource (AWS::IAM::ServerCertificate) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html +type ServerCertificate struct { + + // CertificateBody AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatebody + CertificateBody string `json:"CertificateBody,omitempty"` + + // CertificateChain AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatechain + CertificateChain string `json:"CertificateChain,omitempty"` + + // Path AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-path + Path string `json:"Path,omitempty"` + + // PrivateKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-privatekey + PrivateKey string `json:"PrivateKey,omitempty"` + + // ServerCertificateName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-servercertificatename + ServerCertificateName string `json:"ServerCertificateName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-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 *ServerCertificate) AWSCloudFormationType() string { + return "AWS::IAM::ServerCertificate" +} + +// 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 ServerCertificate) MarshalJSON() ([]byte, error) { + type Properties ServerCertificate + 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 *ServerCertificate) UnmarshalJSON(b []byte) error { + type Properties ServerCertificate + 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 = ServerCertificate(*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/iam/aws-iam-virtualmfadevice.go b/cloudformation/iam/aws-iam-virtualmfadevice.go new file mode 100644 index 0000000000..7bc9a85356 --- /dev/null +++ b/cloudformation/iam/aws-iam-virtualmfadevice.go @@ -0,0 +1,122 @@ +package iam + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// VirtualMFADevice AWS CloudFormation Resource (AWS::IAM::VirtualMFADevice) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html +type VirtualMFADevice struct { + + // Path AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-path + Path string `json:"Path,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Users AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-users + Users []string `json:"Users,omitempty"` + + // VirtualMfaDeviceName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-virtualmfadevicename + VirtualMfaDeviceName string `json:"VirtualMfaDeviceName,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 *VirtualMFADevice) AWSCloudFormationType() string { + return "AWS::IAM::VirtualMFADevice" +} + +// 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 VirtualMFADevice) MarshalJSON() ([]byte, error) { + type Properties VirtualMFADevice + 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 *VirtualMFADevice) UnmarshalJSON(b []byte) error { + type Properties VirtualMFADevice + 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 = VirtualMFADevice(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-accountauditconfiguration.go b/cloudformation/iot/aws-iot-accountauditconfiguration.go new file mode 100644 index 0000000000..cb09a7502f --- /dev/null +++ b/cloudformation/iot/aws-iot-accountauditconfiguration.go @@ -0,0 +1,121 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccountAuditConfiguration AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html +type AccountAuditConfiguration struct { + + // AccountId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-accountid + AccountId string `json:"AccountId,omitempty"` + + // AuditCheckConfigurations AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations + AuditCheckConfigurations *AccountAuditConfiguration_AuditCheckConfigurations `json:"AuditCheckConfigurations,omitempty"` + + // AuditNotificationTargetConfigurations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-auditnotificationtargetconfigurations + AuditNotificationTargetConfigurations *AccountAuditConfiguration_AuditNotificationTargetConfigurations `json:"AuditNotificationTargetConfigurations,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-rolearn + RoleArn string `json:"RoleArn,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 *AccountAuditConfiguration) AWSCloudFormationType() string { + return "AWS::IoT::AccountAuditConfiguration" +} + +// 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 AccountAuditConfiguration) MarshalJSON() ([]byte, error) { + type Properties AccountAuditConfiguration + 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 *AccountAuditConfiguration) UnmarshalJSON(b []byte) error { + type Properties AccountAuditConfiguration + 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 = AccountAuditConfiguration(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go b/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go new file mode 100644 index 0000000000..5cfd47632c --- /dev/null +++ b/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccountAuditConfiguration_AuditCheckConfiguration AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html +type AccountAuditConfiguration_AuditCheckConfiguration struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html#cfn-iot-accountauditconfiguration-auditcheckconfiguration-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 *AccountAuditConfiguration_AuditCheckConfiguration) AWSCloudFormationType() string { + return "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" +} diff --git a/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go b/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go new file mode 100644 index 0000000000..06c77a7594 --- /dev/null +++ b/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go @@ -0,0 +1,100 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccountAuditConfiguration_AuditCheckConfigurations AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html +type AccountAuditConfiguration_AuditCheckConfigurations struct { + + // AuthenticatedCognitoRoleOverlyPermissiveCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-authenticatedcognitoroleoverlypermissivecheck + AuthenticatedCognitoRoleOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"AuthenticatedCognitoRoleOverlyPermissiveCheck,omitempty"` + + // CaCertificateExpiringCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-cacertificateexpiringcheck + CaCertificateExpiringCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"CaCertificateExpiringCheck,omitempty"` + + // CaCertificateKeyQualityCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-cacertificatekeyqualitycheck + CaCertificateKeyQualityCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"CaCertificateKeyQualityCheck,omitempty"` + + // ConflictingClientIdsCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-conflictingclientidscheck + ConflictingClientIdsCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"ConflictingClientIdsCheck,omitempty"` + + // DeviceCertificateExpiringCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-devicecertificateexpiringcheck + DeviceCertificateExpiringCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"DeviceCertificateExpiringCheck,omitempty"` + + // DeviceCertificateKeyQualityCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-devicecertificatekeyqualitycheck + DeviceCertificateKeyQualityCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"DeviceCertificateKeyQualityCheck,omitempty"` + + // DeviceCertificateSharedCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-devicecertificatesharedcheck + DeviceCertificateSharedCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"DeviceCertificateSharedCheck,omitempty"` + + // IotPolicyOverlyPermissiveCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-iotpolicyoverlypermissivecheck + IotPolicyOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"IotPolicyOverlyPermissiveCheck,omitempty"` + + // IotRoleAliasAllowsAccessToUnusedServicesCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-iotrolealiasallowsaccesstounusedservicescheck + IotRoleAliasAllowsAccessToUnusedServicesCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"IotRoleAliasAllowsAccessToUnusedServicesCheck,omitempty"` + + // IotRoleAliasOverlyPermissiveCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-iotrolealiasoverlypermissivecheck + IotRoleAliasOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"IotRoleAliasOverlyPermissiveCheck,omitempty"` + + // LoggingDisabledCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-loggingdisabledcheck + LoggingDisabledCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"LoggingDisabledCheck,omitempty"` + + // RevokedCaCertificateStillActiveCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-revokedcacertificatestillactivecheck + RevokedCaCertificateStillActiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"RevokedCaCertificateStillActiveCheck,omitempty"` + + // RevokedDeviceCertificateStillActiveCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-revokeddevicecertificatestillactivecheck + RevokedDeviceCertificateStillActiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"RevokedDeviceCertificateStillActiveCheck,omitempty"` + + // UnauthenticatedCognitoRoleOverlyPermissiveCheck AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-unauthenticatedcognitoroleoverlypermissivecheck + UnauthenticatedCognitoRoleOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"UnauthenticatedCognitoRoleOverlyPermissiveCheck,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 *AccountAuditConfiguration_AuditCheckConfigurations) AWSCloudFormationType() string { + return "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" +} diff --git a/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go b/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go new file mode 100644 index 0000000000..2a012cb941 --- /dev/null +++ b/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go @@ -0,0 +1,45 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccountAuditConfiguration_AuditNotificationTarget AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html +type AccountAuditConfiguration_AuditNotificationTarget struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html#cfn-iot-accountauditconfiguration-auditnotificationtarget-enabled + Enabled bool `json:"Enabled,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html#cfn-iot-accountauditconfiguration-auditnotificationtarget-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // TargetArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html#cfn-iot-accountauditconfiguration-auditnotificationtarget-targetarn + TargetArn string `json:"TargetArn,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 *AccountAuditConfiguration_AuditNotificationTarget) AWSCloudFormationType() string { + return "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" +} diff --git a/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go b/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go new file mode 100644 index 0000000000..173cbdc7f2 --- /dev/null +++ b/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccountAuditConfiguration_AuditNotificationTargetConfigurations AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html +type AccountAuditConfiguration_AuditNotificationTargetConfigurations struct { + + // Sns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html#cfn-iot-accountauditconfiguration-auditnotificationtargetconfigurations-sns + Sns *AccountAuditConfiguration_AuditNotificationTarget `json:"Sns,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 *AccountAuditConfiguration_AuditNotificationTargetConfigurations) AWSCloudFormationType() string { + return "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" +} diff --git a/cloudformation/iot/aws-iot-custommetric.go b/cloudformation/iot/aws-iot-custommetric.go new file mode 100644 index 0000000000..3a68bb7a80 --- /dev/null +++ b/cloudformation/iot/aws-iot-custommetric.go @@ -0,0 +1,122 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// CustomMetric AWS CloudFormation Resource (AWS::IoT::CustomMetric) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html +type CustomMetric struct { + + // DisplayName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-displayname + DisplayName string `json:"DisplayName,omitempty"` + + // MetricName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-metricname + MetricName string `json:"MetricName,omitempty"` + + // MetricType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-metrictype + MetricType string `json:"MetricType,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-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 *CustomMetric) AWSCloudFormationType() string { + return "AWS::IoT::CustomMetric" +} + +// 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 CustomMetric) MarshalJSON() ([]byte, error) { + type Properties CustomMetric + 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 *CustomMetric) UnmarshalJSON(b []byte) error { + type Properties CustomMetric + 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 = CustomMetric(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-dimension.go b/cloudformation/iot/aws-iot-dimension.go new file mode 100644 index 0000000000..26c2ef1152 --- /dev/null +++ b/cloudformation/iot/aws-iot-dimension.go @@ -0,0 +1,122 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Dimension AWS CloudFormation Resource (AWS::IoT::Dimension) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html +type Dimension struct { + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-name + Name string `json:"Name,omitempty"` + + // StringValues AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-stringvalues + StringValues []string `json:"StringValues,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-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 *Dimension) AWSCloudFormationType() string { + return "AWS::IoT::Dimension" +} + +// 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 Dimension) MarshalJSON() ([]byte, error) { + type Properties Dimension + 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 *Dimension) UnmarshalJSON(b []byte) error { + type Properties Dimension + 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 = Dimension(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-mitigationaction.go b/cloudformation/iot/aws-iot-mitigationaction.go new file mode 100644 index 0000000000..ef2ceac5f7 --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction.go @@ -0,0 +1,122 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// MitigationAction AWS CloudFormation Resource (AWS::IoT::MitigationAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html +type MitigationAction struct { + + // ActionName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-actionname + ActionName string `json:"ActionName,omitempty"` + + // ActionParams AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-actionparams + ActionParams *MitigationAction_ActionParams `json:"ActionParams,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-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 *MitigationAction) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction" +} + +// 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 MitigationAction) MarshalJSON() ([]byte, error) { + type Properties MitigationAction + 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 *MitigationAction) UnmarshalJSON(b []byte) error { + type Properties MitigationAction + 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 = MitigationAction(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_actionparams.go b/cloudformation/iot/aws-iot-mitigationaction_actionparams.go new file mode 100644 index 0000000000..a1c5a7dba4 --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_actionparams.go @@ -0,0 +1,60 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_ActionParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.ActionParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html +type MitigationAction_ActionParams struct { + + // AddThingsToThingGroupParams AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-addthingstothinggroupparams + AddThingsToThingGroupParams *MitigationAction_AddThingsToThingGroupParams `json:"AddThingsToThingGroupParams,omitempty"` + + // EnableIoTLoggingParams AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-enableiotloggingparams + EnableIoTLoggingParams *MitigationAction_EnableIoTLoggingParams `json:"EnableIoTLoggingParams,omitempty"` + + // PublishFindingToSnsParams AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-publishfindingtosnsparams + PublishFindingToSnsParams *MitigationAction_PublishFindingToSnsParams `json:"PublishFindingToSnsParams,omitempty"` + + // ReplaceDefaultPolicyVersionParams AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-replacedefaultpolicyversionparams + ReplaceDefaultPolicyVersionParams *MitigationAction_ReplaceDefaultPolicyVersionParams `json:"ReplaceDefaultPolicyVersionParams,omitempty"` + + // UpdateCACertificateParams AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-updatecacertificateparams + UpdateCACertificateParams *MitigationAction_UpdateCACertificateParams `json:"UpdateCACertificateParams,omitempty"` + + // UpdateDeviceCertificateParams AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-updatedevicecertificateparams + UpdateDeviceCertificateParams *MitigationAction_UpdateDeviceCertificateParams `json:"UpdateDeviceCertificateParams,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 *MitigationAction_ActionParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.ActionParams" +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go b/cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go new file mode 100644 index 0000000000..cfb9eaa963 --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go @@ -0,0 +1,40 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_AddThingsToThingGroupParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.AddThingsToThingGroupParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html +type MitigationAction_AddThingsToThingGroupParams struct { + + // OverrideDynamicGroups AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html#cfn-iot-mitigationaction-addthingstothinggroupparams-overridedynamicgroups + OverrideDynamicGroups bool `json:"OverrideDynamicGroups,omitempty"` + + // ThingGroupNames AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html#cfn-iot-mitigationaction-addthingstothinggroupparams-thinggroupnames + ThingGroupNames []string `json:"ThingGroupNames,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 *MitigationAction_AddThingsToThingGroupParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.AddThingsToThingGroupParams" +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go b/cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go new file mode 100644 index 0000000000..b173cb1a41 --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go @@ -0,0 +1,40 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_EnableIoTLoggingParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.EnableIoTLoggingParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html +type MitigationAction_EnableIoTLoggingParams struct { + + // LogLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html#cfn-iot-mitigationaction-enableiotloggingparams-loglevel + LogLevel string `json:"LogLevel,omitempty"` + + // RoleArnForLogging AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html#cfn-iot-mitigationaction-enableiotloggingparams-rolearnforlogging + RoleArnForLogging string `json:"RoleArnForLogging,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 *MitigationAction_EnableIoTLoggingParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.EnableIoTLoggingParams" +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go b/cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go new file mode 100644 index 0000000000..be3c5be991 --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_PublishFindingToSnsParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.PublishFindingToSnsParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html +type MitigationAction_PublishFindingToSnsParams struct { + + // TopicArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html#cfn-iot-mitigationaction-publishfindingtosnsparams-topicarn + TopicArn string `json:"TopicArn,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 *MitigationAction_PublishFindingToSnsParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.PublishFindingToSnsParams" +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go b/cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go new file mode 100644 index 0000000000..9742e21728 --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_ReplaceDefaultPolicyVersionParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html +type MitigationAction_ReplaceDefaultPolicyVersionParams struct { + + // TemplateName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html#cfn-iot-mitigationaction-replacedefaultpolicyversionparams-templatename + TemplateName string `json:"TemplateName,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 *MitigationAction_ReplaceDefaultPolicyVersionParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go b/cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go new file mode 100644 index 0000000000..fa24922ddd --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_UpdateCACertificateParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.UpdateCACertificateParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html +type MitigationAction_UpdateCACertificateParams struct { + + // Action AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html#cfn-iot-mitigationaction-updatecacertificateparams-action + Action string `json:"Action,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 *MitigationAction_UpdateCACertificateParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.UpdateCACertificateParams" +} diff --git a/cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go b/cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go new file mode 100644 index 0000000000..ff8120053b --- /dev/null +++ b/cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// MitigationAction_UpdateDeviceCertificateParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.UpdateDeviceCertificateParams) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html +type MitigationAction_UpdateDeviceCertificateParams struct { + + // Action AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html#cfn-iot-mitigationaction-updatedevicecertificateparams-action + Action string `json:"Action,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 *MitigationAction_UpdateDeviceCertificateParams) AWSCloudFormationType() string { + return "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" +} diff --git a/cloudformation/iot/aws-iot-scheduledaudit.go b/cloudformation/iot/aws-iot-scheduledaudit.go new file mode 100644 index 0000000000..05df27e994 --- /dev/null +++ b/cloudformation/iot/aws-iot-scheduledaudit.go @@ -0,0 +1,132 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// ScheduledAudit AWS CloudFormation Resource (AWS::IoT::ScheduledAudit) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html +type ScheduledAudit struct { + + // DayOfMonth AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-dayofmonth + DayOfMonth string `json:"DayOfMonth,omitempty"` + + // DayOfWeek AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-dayofweek + DayOfWeek string `json:"DayOfWeek,omitempty"` + + // Frequency AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-frequency + Frequency string `json:"Frequency,omitempty"` + + // ScheduledAuditName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-scheduledauditname + ScheduledAuditName string `json:"ScheduledAuditName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TargetCheckNames AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-targetchecknames + TargetCheckNames []string `json:"TargetCheckNames,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 *ScheduledAudit) AWSCloudFormationType() string { + return "AWS::IoT::ScheduledAudit" +} + +// 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 ScheduledAudit) MarshalJSON() ([]byte, error) { + type Properties ScheduledAudit + 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 *ScheduledAudit) UnmarshalJSON(b []byte) error { + type Properties ScheduledAudit + 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 = ScheduledAudit(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-securityprofile.go b/cloudformation/iot/aws-iot-securityprofile.go new file mode 100644 index 0000000000..f1f93ff70b --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile.go @@ -0,0 +1,137 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// SecurityProfile AWS CloudFormation Resource (AWS::IoT::SecurityProfile) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html +type SecurityProfile struct { + + // AdditionalMetricsToRetainV2 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-additionalmetricstoretainv2 + AdditionalMetricsToRetainV2 []SecurityProfile_MetricToRetain `json:"AdditionalMetricsToRetainV2,omitempty"` + + // AlertTargets AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-alerttargets + AlertTargets map[string]SecurityProfile_AlertTarget `json:"AlertTargets,omitempty"` + + // Behaviors AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-behaviors + Behaviors []SecurityProfile_Behavior `json:"Behaviors,omitempty"` + + // SecurityProfileDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-securityprofiledescription + SecurityProfileDescription string `json:"SecurityProfileDescription,omitempty"` + + // SecurityProfileName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-securityprofilename + SecurityProfileName string `json:"SecurityProfileName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TargetArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-targetarns + TargetArns []string `json:"TargetArns,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 *SecurityProfile) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile" +} + +// 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 SecurityProfile) MarshalJSON() ([]byte, error) { + type Properties SecurityProfile + 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 *SecurityProfile) UnmarshalJSON(b []byte) error { + type Properties SecurityProfile + 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 = SecurityProfile(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-securityprofile_alerttarget.go b/cloudformation/iot/aws-iot-securityprofile_alerttarget.go new file mode 100644 index 0000000000..1f3ad82b6d --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_alerttarget.go @@ -0,0 +1,40 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_AlertTarget AWS CloudFormation Resource (AWS::IoT::SecurityProfile.AlertTarget) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html +type SecurityProfile_AlertTarget struct { + + // AlertTargetArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html#cfn-iot-securityprofile-alerttarget-alerttargetarn + AlertTargetArn string `json:"AlertTargetArn,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html#cfn-iot-securityprofile-alerttarget-rolearn + RoleArn string `json:"RoleArn,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 *SecurityProfile_AlertTarget) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.AlertTarget" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_behavior.go b/cloudformation/iot/aws-iot-securityprofile_behavior.go new file mode 100644 index 0000000000..f766f25609 --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_behavior.go @@ -0,0 +1,55 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_Behavior AWS CloudFormation Resource (AWS::IoT::SecurityProfile.Behavior) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html +type SecurityProfile_Behavior struct { + + // Criteria AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-criteria + Criteria *SecurityProfile_BehaviorCriteria `json:"Criteria,omitempty"` + + // Metric AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-metric + Metric string `json:"Metric,omitempty"` + + // MetricDimension AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-metricdimension + MetricDimension *SecurityProfile_MetricDimension `json:"MetricDimension,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-name + Name string `json:"Name,omitempty"` + + // SuppressAlerts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-suppressalerts + SuppressAlerts bool `json:"SuppressAlerts,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 *SecurityProfile_Behavior) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.Behavior" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go b/cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go new file mode 100644 index 0000000000..14d7b5ac04 --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go @@ -0,0 +1,65 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_BehaviorCriteria AWS CloudFormation Resource (AWS::IoT::SecurityProfile.BehaviorCriteria) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html +type SecurityProfile_BehaviorCriteria struct { + + // ComparisonOperator AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-comparisonoperator + ComparisonOperator string `json:"ComparisonOperator,omitempty"` + + // ConsecutiveDatapointsToAlarm AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-consecutivedatapointstoalarm + ConsecutiveDatapointsToAlarm int `json:"ConsecutiveDatapointsToAlarm,omitempty"` + + // ConsecutiveDatapointsToClear AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-consecutivedatapointstoclear + ConsecutiveDatapointsToClear int `json:"ConsecutiveDatapointsToClear,omitempty"` + + // DurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-durationseconds + DurationSeconds int `json:"DurationSeconds,omitempty"` + + // MlDetectionConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-mldetectionconfig + MlDetectionConfig *SecurityProfile_MachineLearningDetectionConfig `json:"MlDetectionConfig,omitempty"` + + // StatisticalThreshold AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-statisticalthreshold + StatisticalThreshold *SecurityProfile_StatisticalThreshold `json:"StatisticalThreshold,omitempty"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-value + Value *SecurityProfile_MetricValue `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *SecurityProfile_BehaviorCriteria) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.BehaviorCriteria" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go b/cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go new file mode 100644 index 0000000000..45ff94b0de --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_MachineLearningDetectionConfig AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MachineLearningDetectionConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html +type SecurityProfile_MachineLearningDetectionConfig struct { + + // ConfidenceLevel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html#cfn-iot-securityprofile-machinelearningdetectionconfig-confidencelevel + ConfidenceLevel string `json:"ConfidenceLevel,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 *SecurityProfile_MachineLearningDetectionConfig) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_metricdimension.go b/cloudformation/iot/aws-iot-securityprofile_metricdimension.go new file mode 100644 index 0000000000..9b3c92794b --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_metricdimension.go @@ -0,0 +1,40 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_MetricDimension AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MetricDimension) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html +type SecurityProfile_MetricDimension struct { + + // DimensionName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html#cfn-iot-securityprofile-metricdimension-dimensionname + DimensionName string `json:"DimensionName,omitempty"` + + // Operator AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html#cfn-iot-securityprofile-metricdimension-operator + Operator string `json:"Operator,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 *SecurityProfile_MetricDimension) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.MetricDimension" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_metrictoretain.go b/cloudformation/iot/aws-iot-securityprofile_metrictoretain.go new file mode 100644 index 0000000000..c83dffbd29 --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_metrictoretain.go @@ -0,0 +1,40 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_MetricToRetain AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MetricToRetain) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html +type SecurityProfile_MetricToRetain struct { + + // Metric AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html#cfn-iot-securityprofile-metrictoretain-metric + Metric string `json:"Metric,omitempty"` + + // MetricDimension AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html#cfn-iot-securityprofile-metrictoretain-metricdimension + MetricDimension *SecurityProfile_MetricDimension `json:"MetricDimension,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 *SecurityProfile_MetricToRetain) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.MetricToRetain" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_metricvalue.go b/cloudformation/iot/aws-iot-securityprofile_metricvalue.go new file mode 100644 index 0000000000..6bebb8d0ce --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_metricvalue.go @@ -0,0 +1,60 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_MetricValue AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MetricValue) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html +type SecurityProfile_MetricValue struct { + + // Cidrs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-cidrs + Cidrs []string `json:"Cidrs,omitempty"` + + // Count AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-count + Count string `json:"Count,omitempty"` + + // Number AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-number + Number float64 `json:"Number,omitempty"` + + // Numbers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-numbers + Numbers []float64 `json:"Numbers,omitempty"` + + // Ports AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-ports + Ports []int `json:"Ports,omitempty"` + + // Strings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-strings + Strings []string `json:"Strings,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 *SecurityProfile_MetricValue) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.MetricValue" +} diff --git a/cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go b/cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go new file mode 100644 index 0000000000..aa664d871b --- /dev/null +++ b/cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go @@ -0,0 +1,35 @@ +package iot + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// SecurityProfile_StatisticalThreshold AWS CloudFormation Resource (AWS::IoT::SecurityProfile.StatisticalThreshold) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html +type SecurityProfile_StatisticalThreshold struct { + + // Statistic AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html#cfn-iot-securityprofile-statisticalthreshold-statistic + Statistic string `json:"Statistic,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 *SecurityProfile_StatisticalThreshold) AWSCloudFormationType() string { + return "AWS::IoT::SecurityProfile.StatisticalThreshold" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go b/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go index cd7763801f..2021b0fd51 100644 --- a/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go +++ b/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go @@ -8,6 +8,16 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html type AccessPolicy_AccessPolicyIdentity struct { + // IamRole AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity-iamrole + IamRole *AccessPolicy_IamRole `json:"IamRole,omitempty"` + + // IamUser AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity-iamuser + IamUser *AccessPolicy_IamUser `json:"IamUser,omitempty"` + // User AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity-user diff --git a/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go b/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go new file mode 100644 index 0000000000..feaa632860 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccessPolicy_IamRole AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.IamRole) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html +type AccessPolicy_IamRole struct { + + // arn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html#cfn-iotsitewise-accesspolicy-iamrole-arn + arn string `json:"arn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AccessPolicy_IamRole) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AccessPolicy.IamRole" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go b/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go new file mode 100644 index 0000000000..7c50545c3a --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccessPolicy_IamUser AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.IamUser) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html +type AccessPolicy_IamUser struct { + + // arn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html#cfn-iotsitewise-accesspolicy-iamuser-arn + arn string `json:"arn,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AccessPolicy_IamUser) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AccessPolicy.IamUser" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go index 81fcdb5c17..0f479dafc1 100644 --- a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html type AssetModel struct { + // AssetModelCompositeModels AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodels + AssetModelCompositeModels []AssetModel_AssetModelCompositeModel `json:"AssetModelCompositeModels,omitempty"` + // AssetModelDescription AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeldescription diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go new file mode 100644 index 0000000000..734a67fa51 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go @@ -0,0 +1,50 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_AssetModelCompositeModel AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html +type AssetModel_AssetModelCompositeModel struct { + + // CompositeModelProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-compositemodelproperties + CompositeModelProperties []AssetModel_AssetModelProperty `json:"CompositeModelProperties,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-name + Name string `json:"Name,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-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 *AssetModel_AssetModelCompositeModel) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go index 241a4b9c77..b3b0724ee2 100644 --- a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go @@ -13,6 +13,11 @@ type AssetModel_AssetModelProperty struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-datatype DataType string `json:"DataType,omitempty"` + // DataTypeSpec AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-datatypespec + DataTypeSpec string `json:"DataTypeSpec,omitempty"` + // LogicalId AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-logicalid diff --git a/cloudformation/iotsitewise/aws-iotsitewise-portal.go b/cloudformation/iotsitewise/aws-iotsitewise-portal.go index dcae9b798e..ad9259e6d0 100644 --- a/cloudformation/iotsitewise/aws-iotsitewise-portal.go +++ b/cloudformation/iotsitewise/aws-iotsitewise-portal.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html type Portal struct { + // PortalAuthMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-portalauthmode + PortalAuthMode string `json:"PortalAuthMode,omitempty"` + // PortalContactEmail AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-portalcontactemail diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_campaignsmsmessage.go b/cloudformation/pinpoint/aws-pinpoint-campaign_campaignsmsmessage.go index 84cc4944ad..8c0ffd120f 100644 --- a/cloudformation/pinpoint/aws-pinpoint-campaign_campaignsmsmessage.go +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_campaignsmsmessage.go @@ -13,6 +13,11 @@ type Campaign_CampaignSmsMessage struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html#cfn-pinpoint-campaign-campaignsmsmessage-body Body string `json:"Body,omitempty"` + // EntityId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html#cfn-pinpoint-campaign-campaignsmsmessage-entityid + EntityId string `json:"EntityId,omitempty"` + // MessageType AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html#cfn-pinpoint-campaign-campaignsmsmessage-messagetype @@ -28,6 +33,11 @@ type Campaign_CampaignSmsMessage struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html#cfn-pinpoint-campaign-campaignsmsmessage-senderid SenderId string `json:"SenderId,omitempty"` + // TemplateId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html#cfn-pinpoint-campaign-campaignsmsmessage-templateid + TemplateId string `json:"TemplateId,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/s3outposts/aws-s3outposts-accesspoint.go b/cloudformation/s3outposts/aws-s3outposts-accesspoint.go new file mode 100644 index 0000000000..8b7bd6efa0 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-accesspoint.go @@ -0,0 +1,121 @@ +package s3outposts + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccessPoint AWS CloudFormation Resource (AWS::S3Outposts::AccessPoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html +type AccessPoint struct { + + // Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html#cfn-s3outposts-accesspoint-bucket + Bucket string `json:"Bucket,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html#cfn-s3outposts-accesspoint-name + Name string `json:"Name,omitempty"` + + // Policy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html#cfn-s3outposts-accesspoint-policy + Policy interface{} `json:"Policy,omitempty"` + + // VpcConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-accesspoint.html#cfn-s3outposts-accesspoint-vpcconfiguration + VpcConfiguration *AccessPoint_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 *AccessPoint) AWSCloudFormationType() string { + return "AWS::S3Outposts::AccessPoint" +} + +// 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 AccessPoint) MarshalJSON() ([]byte, error) { + type Properties AccessPoint + 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 *AccessPoint) UnmarshalJSON(b []byte) error { + type Properties AccessPoint + 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 = AccessPoint(*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/s3outposts/aws-s3outposts-accesspoint_vpcconfiguration.go b/cloudformation/s3outposts/aws-s3outposts-accesspoint_vpcconfiguration.go new file mode 100644 index 0000000000..6c304bfcd5 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-accesspoint_vpcconfiguration.go @@ -0,0 +1,35 @@ +package s3outposts + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AccessPoint_VpcConfiguration AWS CloudFormation Resource (AWS::S3Outposts::AccessPoint.VpcConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-accesspoint-vpcconfiguration.html +type AccessPoint_VpcConfiguration struct { + + // VpcId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-accesspoint-vpcconfiguration.html#cfn-s3outposts-accesspoint-vpcconfiguration-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 *AccessPoint_VpcConfiguration) AWSCloudFormationType() string { + return "AWS::S3Outposts::AccessPoint.VpcConfiguration" +} diff --git a/cloudformation/s3outposts/aws-s3outposts-bucket.go b/cloudformation/s3outposts/aws-s3outposts-bucket.go new file mode 100644 index 0000000000..9b90aaa1a2 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-bucket.go @@ -0,0 +1,122 @@ +package s3outposts + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Bucket AWS CloudFormation Resource (AWS::S3Outposts::Bucket) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html +type Bucket struct { + + // BucketName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html#cfn-s3outposts-bucket-bucketname + BucketName string `json:"BucketName,omitempty"` + + // LifecycleConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html#cfn-s3outposts-bucket-lifecycleconfiguration + LifecycleConfiguration *Bucket_LifecycleConfiguration `json:"LifecycleConfiguration,omitempty"` + + // OutpostId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html#cfn-s3outposts-bucket-outpostid + OutpostId string `json:"OutpostId,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucket.html#cfn-s3outposts-bucket-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 *Bucket) AWSCloudFormationType() string { + return "AWS::S3Outposts::Bucket" +} + +// 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 Bucket) MarshalJSON() ([]byte, error) { + type Properties Bucket + 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 *Bucket) UnmarshalJSON(b []byte) error { + type Properties Bucket + 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 = Bucket(*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/s3outposts/aws-s3outposts-bucket_abortincompletemultipartupload.go b/cloudformation/s3outposts/aws-s3outposts-bucket_abortincompletemultipartupload.go new file mode 100644 index 0000000000..ef3ec266be --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-bucket_abortincompletemultipartupload.go @@ -0,0 +1,35 @@ +package s3outposts + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_AbortIncompleteMultipartUpload AWS CloudFormation Resource (AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-abortincompletemultipartupload.html +type Bucket_AbortIncompleteMultipartUpload struct { + + // DaysAfterInitiation AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-abortincompletemultipartupload.html#cfn-s3outposts-bucket-abortincompletemultipartupload-daysafterinitiation + DaysAfterInitiation int `json:"DaysAfterInitiation"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Bucket_AbortIncompleteMultipartUpload) AWSCloudFormationType() string { + return "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" +} diff --git a/cloudformation/s3outposts/aws-s3outposts-bucket_lifecycleconfiguration.go b/cloudformation/s3outposts/aws-s3outposts-bucket_lifecycleconfiguration.go new file mode 100644 index 0000000000..01db964edc --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-bucket_lifecycleconfiguration.go @@ -0,0 +1,35 @@ +package s3outposts + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_LifecycleConfiguration AWS CloudFormation Resource (AWS::S3Outposts::Bucket.LifecycleConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-lifecycleconfiguration.html +type Bucket_LifecycleConfiguration struct { + + // Rules AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-lifecycleconfiguration.html#cfn-s3outposts-bucket-lifecycleconfiguration-rules + Rules []Bucket_Rule `json:"Rules,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Bucket_LifecycleConfiguration) AWSCloudFormationType() string { + return "AWS::S3Outposts::Bucket.LifecycleConfiguration" +} diff --git a/cloudformation/s3outposts/aws-s3outposts-bucket_rule.go b/cloudformation/s3outposts/aws-s3outposts-bucket_rule.go new file mode 100644 index 0000000000..50c81945c5 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-bucket_rule.go @@ -0,0 +1,60 @@ +package s3outposts + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_Rule AWS CloudFormation Resource (AWS::S3Outposts::Bucket.Rule) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html +type Bucket_Rule struct { + + // AbortIncompleteMultipartUpload AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html#cfn-s3outposts-bucket-rule-abortincompletemultipartupload + AbortIncompleteMultipartUpload *Bucket_AbortIncompleteMultipartUpload `json:"AbortIncompleteMultipartUpload,omitempty"` + + // ExpirationDate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html#cfn-s3outposts-bucket-rule-expirationdate + ExpirationDate string `json:"ExpirationDate,omitempty"` + + // ExpirationInDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html#cfn-s3outposts-bucket-rule-expirationindays + ExpirationInDays int `json:"ExpirationInDays,omitempty"` + + // Filter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html#cfn-s3outposts-bucket-rule-filter + Filter interface{} `json:"Filter,omitempty"` + + // Id AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html#cfn-s3outposts-bucket-rule-id + Id string `json:"Id,omitempty"` + + // Status AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html#cfn-s3outposts-bucket-rule-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 *Bucket_Rule) AWSCloudFormationType() string { + return "AWS::S3Outposts::Bucket.Rule" +} diff --git a/cloudformation/s3outposts/aws-s3outposts-bucketpolicy.go b/cloudformation/s3outposts/aws-s3outposts-bucketpolicy.go new file mode 100644 index 0000000000..9c17a842e5 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-bucketpolicy.go @@ -0,0 +1,111 @@ +package s3outposts + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// BucketPolicy AWS CloudFormation Resource (AWS::S3Outposts::BucketPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html +type BucketPolicy struct { + + // Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html#cfn-s3outposts-bucketpolicy-bucket + Bucket string `json:"Bucket,omitempty"` + + // PolicyDocument AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-bucketpolicy.html#cfn-s3outposts-bucketpolicy-policydocument + PolicyDocument interface{} `json:"PolicyDocument,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 *BucketPolicy) AWSCloudFormationType() string { + return "AWS::S3Outposts::BucketPolicy" +} + +// 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 BucketPolicy) MarshalJSON() ([]byte, error) { + type Properties BucketPolicy + 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 *BucketPolicy) UnmarshalJSON(b []byte) error { + type Properties BucketPolicy + 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 = BucketPolicy(*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/s3outposts/aws-s3outposts-endpoint.go b/cloudformation/s3outposts/aws-s3outposts-endpoint.go new file mode 100644 index 0000000000..3f2a209b10 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-endpoint.go @@ -0,0 +1,116 @@ +package s3outposts + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Endpoint AWS CloudFormation Resource (AWS::S3Outposts::Endpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html +type Endpoint struct { + + // OutpostId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html#cfn-s3outposts-endpoint-outpostid + OutpostId string `json:"OutpostId,omitempty"` + + // SecurityGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html#cfn-s3outposts-endpoint-securitygroupid + SecurityGroupId string `json:"SecurityGroupId,omitempty"` + + // SubnetId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3outposts-endpoint.html#cfn-s3outposts-endpoint-subnetid + SubnetId string `json:"SubnetId,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Endpoint) AWSCloudFormationType() string { + return "AWS::S3Outposts::Endpoint" +} + +// 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 Endpoint) MarshalJSON() ([]byte, error) { + type Properties Endpoint + 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 *Endpoint) UnmarshalJSON(b []byte) error { + type Properties Endpoint + 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 = Endpoint(*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/s3outposts/aws-s3outposts-endpoint_networkinterface.go b/cloudformation/s3outposts/aws-s3outposts-endpoint_networkinterface.go new file mode 100644 index 0000000000..567d380620 --- /dev/null +++ b/cloudformation/s3outposts/aws-s3outposts-endpoint_networkinterface.go @@ -0,0 +1,35 @@ +package s3outposts + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Endpoint_NetworkInterface AWS CloudFormation Resource (AWS::S3Outposts::Endpoint.NetworkInterface) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-endpoint-networkinterface.html +type Endpoint_NetworkInterface struct { + + // NetworkInterfaceId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-endpoint-networkinterface.html#cfn-s3outposts-endpoint-networkinterface-networkinterfaceid + NetworkInterfaceId string `json:"NetworkInterfaceId,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 *Endpoint_NetworkInterface) AWSCloudFormationType() string { + return "AWS::S3Outposts::Endpoint.NetworkInterface" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-image.go b/cloudformation/sagemaker/aws-sagemaker-image.go new file mode 100644 index 0000000000..aa180bee8f --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-image.go @@ -0,0 +1,127 @@ +package sagemaker + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Image AWS CloudFormation Resource (AWS::SageMaker::Image) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html +type Image struct { + + // ImageDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html#cfn-sagemaker-image-imagedescription + ImageDescription string `json:"ImageDescription,omitempty"` + + // ImageDisplayName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html#cfn-sagemaker-image-imagedisplayname + ImageDisplayName string `json:"ImageDisplayName,omitempty"` + + // ImageName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html#cfn-sagemaker-image-imagename + ImageName string `json:"ImageName,omitempty"` + + // ImageRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html#cfn-sagemaker-image-imagerolearn + ImageRoleArn string `json:"ImageRoleArn,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-image.html#cfn-sagemaker-image-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 *Image) AWSCloudFormationType() string { + return "AWS::SageMaker::Image" +} + +// 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 Image) MarshalJSON() ([]byte, error) { + type Properties Image + 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 *Image) UnmarshalJSON(b []byte) error { + type Properties Image + 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 = Image(*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/sagemaker/aws-sagemaker-imageversion.go b/cloudformation/sagemaker/aws-sagemaker-imageversion.go new file mode 100644 index 0000000000..9b850f2474 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-imageversion.go @@ -0,0 +1,111 @@ +package sagemaker + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// ImageVersion AWS CloudFormation Resource (AWS::SageMaker::ImageVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html +type ImageVersion struct { + + // BaseImage AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html#cfn-sagemaker-imageversion-baseimage + BaseImage string `json:"BaseImage,omitempty"` + + // ImageName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-imageversion.html#cfn-sagemaker-imageversion-imagename + ImageName string `json:"ImageName,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 *ImageVersion) AWSCloudFormationType() string { + return "AWS::SageMaker::ImageVersion" +} + +// 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 ImageVersion) MarshalJSON() ([]byte, error) { + type Properties ImageVersion + 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 *ImageVersion) UnmarshalJSON(b []byte) error { + type Properties ImageVersion + 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 = ImageVersion(*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/sagemaker/aws-sagemaker-model.go b/cloudformation/sagemaker/aws-sagemaker-model.go index 247a277063..6b9f5cae82 100644 --- a/cloudformation/sagemaker/aws-sagemaker-model.go +++ b/cloudformation/sagemaker/aws-sagemaker-model.go @@ -28,6 +28,11 @@ type Model struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-executionrolearn ExecutionRoleArn string `json:"ExecutionRoleArn,omitempty"` + // InferenceExecutionConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-inferenceexecutionconfig + InferenceExecutionConfig *Model_InferenceExecutionConfig `json:"InferenceExecutionConfig,omitempty"` + // ModelName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-modelname diff --git a/cloudformation/secretsmanager/aws-secretsmanager-secret.go b/cloudformation/secretsmanager/aws-secretsmanager-secret.go index 2b6130b254..8277f7339f 100644 --- a/cloudformation/secretsmanager/aws-secretsmanager-secret.go +++ b/cloudformation/secretsmanager/aws-secretsmanager-secret.go @@ -33,6 +33,11 @@ type Secret struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-name Name string `json:"Name,omitempty"` + // ReplicaRegions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-replicaregions + ReplicaRegions []Secret_ReplicaRegion `json:"ReplicaRegions,omitempty"` + // SecretString AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html#cfn-secretsmanager-secret-secretstring diff --git a/cloudformation/secretsmanager/aws-secretsmanager-secret_replicaregion.go b/cloudformation/secretsmanager/aws-secretsmanager-secret_replicaregion.go new file mode 100644 index 0000000000..1a52b71405 --- /dev/null +++ b/cloudformation/secretsmanager/aws-secretsmanager-secret_replicaregion.go @@ -0,0 +1,40 @@ +package secretsmanager + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Secret_ReplicaRegion AWS CloudFormation Resource (AWS::SecretsManager::Secret.ReplicaRegion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-replicaregion.html +type Secret_ReplicaRegion struct { + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-replicaregion.html#cfn-secretsmanager-secret-replicaregion-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + + // Region AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-secret-replicaregion.html#cfn-secretsmanager-secret-replicaregion-region + Region string `json:"Region,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 *Secret_ReplicaRegion) AWSCloudFormationType() string { + return "AWS::SecretsManager::Secret.ReplicaRegion" +} diff --git a/cloudformation/synthetics/aws-synthetics-canary_code.go b/cloudformation/synthetics/aws-synthetics-canary_code.go index 618b06e991..739fd1378b 100644 --- a/cloudformation/synthetics/aws-synthetics-canary_code.go +++ b/cloudformation/synthetics/aws-synthetics-canary_code.go @@ -9,7 +9,7 @@ import ( type Canary_Code struct { // Handler AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html#cfn-synthetics-canary-code-handler Handler string `json:"Handler,omitempty"` diff --git a/cloudformation/synthetics/aws-synthetics-canary_runconfig.go b/cloudformation/synthetics/aws-synthetics-canary_runconfig.go index cdd0fa3545..c218915e4e 100644 --- a/cloudformation/synthetics/aws-synthetics-canary_runconfig.go +++ b/cloudformation/synthetics/aws-synthetics-canary_runconfig.go @@ -24,9 +24,9 @@ type Canary_RunConfig struct { MemoryInMB int `json:"MemoryInMB,omitempty"` // TimeoutInSeconds AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html#cfn-synthetics-canary-runconfig-timeoutinseconds - TimeoutInSeconds int `json:"TimeoutInSeconds"` + TimeoutInSeconds int `json:"TimeoutInSeconds,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 21b7f3747f..715777d617 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -12058,6 +12058,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Athena::WorkGroup.EngineVersion": { + "additionalProperties": false, + "properties": { + "EffectiveEngineVersion": { + "type": "string" + }, + "SelectedEngineVersion": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Athena::WorkGroup.ResultConfiguration": { "additionalProperties": false, "properties": { @@ -12097,6 +12109,9 @@ var CloudformationSchema = `{ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -12118,6 +12133,9 @@ var CloudformationSchema = `{ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -13830,6 +13848,12 @@ var CloudformationSchema = `{ "type": "string" }, "BackupVaultTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "EncryptionKeyArn": { @@ -15380,6 +15404,9 @@ var CloudformationSchema = `{ "Description": { "type": "string" }, + "ImageId": { + "type": "string" + }, "InstanceType": { "type": "string" }, @@ -15688,7 +15715,8 @@ var CloudformationSchema = `{ } }, "required": [ - "ModuleName" + "ModuleName", + "ModulePackage" ], "type": "object" }, @@ -19385,6 +19413,9 @@ var CloudformationSchema = `{ "Bucket": { "type": "string" }, + "BucketOwner": { + "type": "string" + }, "EncryptionDisabled": { "type": "boolean" }, @@ -25420,6 +25451,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Format": { + "type": "string" + }, "FormatOptions": { "type": "object" }, @@ -27399,6 +27433,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DisableEmailNotification": { + "type": "boolean" + }, "GraphArn": { "type": "string" }, @@ -34220,7 +34257,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomain": { + "AWS::EC2::TransitGatewayConnect": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34253,7 +34290,7 @@ var CloudformationSchema = `{ "additionalProperties": false, "properties": { "Options": { - "type": "object" + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" }, "Tags": { "items": { @@ -34261,18 +34298,19 @@ var CloudformationSchema = `{ }, "type": "array" }, - "TransitGatewayId": { + "TransportTransitGatewayAttachmentId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "Options", + "TransportTransitGatewayAttachmentId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomain" + "AWS::EC2::TransitGatewayConnect" ], "type": "string" }, @@ -34291,7 +34329,16 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomainAssociation": { + "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomain": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34323,26 +34370,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "SubnetId": { - "type": "string" + "Options": { + "type": "object" }, - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayMulticastDomainId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "SubnetId", - "TransitGatewayAttachmentId", - "TransitGatewayMulticastDomainId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomainAssociation" + "AWS::EC2::TransitGatewayMulticastDomain" ], "type": "string" }, @@ -34361,7 +34409,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupMember": { + "AWS::EC2::TransitGatewayMulticastDomainAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34393,10 +34441,10 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupIpAddress": { + "SubnetId": { "type": "string" }, - "NetworkInterfaceId": { + "TransitGatewayAttachmentId": { "type": "string" }, "TransitGatewayMulticastDomainId": { @@ -34404,15 +34452,15 @@ var CloudformationSchema = `{ } }, "required": [ - "GroupIpAddress", - "NetworkInterfaceId", + "SubnetId", + "TransitGatewayAttachmentId", "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupMember" + "AWS::EC2::TransitGatewayMulticastDomainAssociation" ], "type": "string" }, @@ -34431,7 +34479,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupSource": { + "AWS::EC2::TransitGatewayMulticastGroupMember": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34482,7 +34530,7 @@ var CloudformationSchema = `{ }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupSource" + "AWS::EC2::TransitGatewayMulticastGroupMember" ], "type": "string" }, @@ -34501,7 +34549,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::TransitGatewayMulticastGroupSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34533,95 +34581,26 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { - "type": "string" - }, - "TransitGatewayAttachmentId": { + "GroupIpAddress": { "type": "string" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRoute" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTable": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "NetworkInterfaceId": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "TransitGatewayMulticastDomainId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "GroupIpAddress", + "NetworkInterfaceId", + "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::TransitGatewayMulticastGroupSource" ], "type": "string" }, @@ -34640,7 +34619,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34672,72 +34651,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Blackhole": { + "type": "boolean" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DestinationCidrBlock": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "TransitGatewayAttachmentId": { "type": "string" }, @@ -34746,14 +34665,13 @@ var CloudformationSchema = `{ } }, "required": [ - "TransitGatewayAttachmentId", "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" }, @@ -34772,7 +34690,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34804,33 +34722,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" - }, - "InstanceTenancy": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TransitGatewayId": { + "type": "string" } }, "required": [ - "CidrBlock" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" }, @@ -34849,7 +34758,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34881,24 +34790,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" }, @@ -34917,7 +34824,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34949,22 +34856,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" }, @@ -34983,7 +34890,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35015,49 +34922,33 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "CidrBlock": { + "type": "string" }, - "PrivateDnsEnabled": { + "EnableDnsHostnames": { "type": "boolean" }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "EnableDnsSupport": { + "type": "boolean" }, - "ServiceName": { + "InstanceTenancy": { "type": "string" }, - "SubnetIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" } }, "required": [ - "ServiceName", - "VpcId" + "CidrBlock" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpoint" + "AWS::EC2::VPC" ], "type": "string" }, @@ -35076,7 +34967,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35108,31 +34999,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionNotificationArn": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::VPCCidrBlock" ], "type": "string" }, @@ -35151,7 +35035,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpointService": { + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35183,27 +35067,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AcceptanceRequired": { - "type": "boolean" - }, - "GatewayLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "DhcpOptionsId": { + "type": "string" }, - "NetworkLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "VpcId": { + "type": "string" } }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointService" + "AWS::EC2::VPCDHCPOptionsAssociation" ], "type": "string" }, @@ -35217,11 +35096,12 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::VPCEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35253,24 +35133,49 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "ServiceId": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "ServiceId" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::VPCEndpoint" ], "type": "string" }, @@ -35289,7 +35194,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35321,24 +35226,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { "type": "string" }, - "VpcId": { + "ServiceId": { "type": "string" }, - "VpnGatewayId": { + "VPCEndpointId": { "type": "string" } }, "required": [ - "VpcId" + "ConnectionEvents", + "ConnectionNotificationArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::VPCEndpointConnectionNotification" ], "type": "string" }, @@ -35357,7 +35269,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::VPCEndpointService": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35389,37 +35301,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { - "type": "string" + "AcceptanceRequired": { + "type": "boolean" }, - "Tags": { + "GatewayLoadBalancerArns": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "VpcId": { - "type": "string" + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "PeerVpcId", - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::VPCEndpointService" ], "type": "string" }, @@ -35433,12 +35335,11 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35470,43 +35371,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { - "type": "string" - }, - "StaticRoutesOnly": { - "type": "boolean" - }, - "Tags": { + "AllowedPrincipals": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TransitGatewayId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "VpnGatewayId": { + "ServiceId": { "type": "string" - }, - "VpnTunnelOptionsSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" - }, - "type": "array" } }, "required": [ - "CustomerGatewayId", - "Type" + "ServiceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::VPCEndpointServicePermissions" ], "type": "string" }, @@ -35525,19 +35407,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35569,22 +35439,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "InternetGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::VPCGatewayAttachment" ], "type": "string" }, @@ -35603,7 +35475,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35635,8 +35507,17 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" }, "Tags": { "items": { @@ -35644,18 +35525,19 @@ var CloudformationSchema = `{ }, "type": "array" }, - "Type": { + "VpcId": { "type": "string" } }, "required": [ - "Type" + "PeerVpcId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::VPCPeeringConnection" ], "type": "string" }, @@ -35674,7 +35556,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35706,25 +35588,43 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "CustomerGatewayId": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, "VpnGatewayId": { "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + }, + "type": "array" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "CustomerGatewayId", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::VPNConnection" ], "type": "string" }, @@ -35743,7 +35643,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35775,54 +35687,22 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAttachEnabled": { - "type": "boolean" - }, - "OutpostArn": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "DestinationCidrBlock": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Throughput": { - "type": "number" - }, - "VolumeType": { + "VpnConnectionId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "DestinationCidrBlock", + "VpnConnectionId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::VPNConnectionRoute" ], "type": "string" }, @@ -35841,7 +35721,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35873,26 +35753,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" + "AmazonSideAsn": { + "type": "number" }, - "InstanceId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VolumeId": { + "Type": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::VPNGateway" ], "type": "string" }, @@ -35911,7 +35792,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ECR::PublicRepository": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35943,21 +35824,25 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RepositoryCatalogData": { - "type": "object" + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "RepositoryName": { + "VpnGatewayId": { "type": "string" - }, - "RepositoryPolicyText": { - "type": "object" } }, + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::PublicRepository" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" }, @@ -35971,11 +35856,12 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::RegistryPolicy": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36007,18 +35893,54 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyText": { - "type": "object" + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Throughput": { + "type": "number" + }, + "VolumeType": { + "type": "string" } }, "required": [ - "PolicyText" + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::RegistryPolicy" + "AWS::EC2::Volume" ], "type": "string" }, @@ -36037,7 +35959,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36069,18 +35991,26 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ReplicationConfiguration": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" } }, "required": [ - "ReplicationConfiguration" + "Device", + "InstanceId", + "VolumeId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::ReplicationConfiguration" + "AWS::EC2::VolumeAttachment" ], "type": "string" }, @@ -36099,53 +36029,247 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" - }, - "type": "array" - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { - "additionalProperties": false, - "properties": { - "Region": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "required": [ - "Region", - "RegistryId" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationRule": { - "additionalProperties": false, - "properties": { - "Destinations": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" - }, - "type": "array" - } - }, - "required": [ - "Destinations" - ], - "type": "object" - }, - "AWS::ECR::Repository": { + "AWS::ECR::PublicRepository": { + "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": { + "RepositoryCatalogData": { + "type": "object" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryPolicyText": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::PublicRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::RegistryPolicy": { + "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": { + "PolicyText": { + "type": "object" + } + }, + "required": [ + "PolicyText" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::RegistryPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration": { + "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": { + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + } + }, + "required": [ + "ReplicationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::ReplicationConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "Region": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "required": [ + "Region", + "RegistryId" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationRule": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" + }, + "type": "array" + } + }, + "required": [ + "Destinations" + ], + "type": "object" + }, + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -38095,6 +38219,87 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EKS::Addon": { + "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": { + "AddonName": { + "type": "string" + }, + "AddonVersion": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "ResolveConflicts": { + "type": "string" + }, + "ServiceAccountRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddonName", + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Addon" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EKS::Cluster": { "additionalProperties": false, "properties": { @@ -40023,6 +40228,186 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EMR::Studio": { + "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": { + "AuthMode": { + "type": "string" + }, + "DefaultS3Location": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineSecurityGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserRole": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "type": "string" + } + }, + "required": [ + "AuthMode", + "DefaultS3Location", + "EngineSecurityGroupId", + "Name", + "ServiceRole", + "SubnetIds", + "UserRole", + "VpcId", + "WorkspaceSecurityGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Studio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::StudioSessionMapping": { + "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": { + "IdentityName": { + "type": "string" + }, + "IdentityType": { + "type": "string" + }, + "SessionPolicyArn": { + "type": "string" + }, + "StudioId": { + "type": "string" + } + }, + "required": [ + "IdentityName", + "IdentityType", + "SessionPolicyArn", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::StudioSessionMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EMRContainers::VirtualCluster": { "additionalProperties": false, "properties": { @@ -43554,7 +43939,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Events::Archive": { + "AWS::Events::ApiDestination": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43586,30 +43971,35 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ArchiveName": { + "ConnectionArn": { "type": "string" }, "Description": { "type": "string" }, - "EventPattern": { - "type": "object" + "HttpMethod": { + "type": "string" }, - "RetentionDays": { + "InvocationEndpoint": { + "type": "string" + }, + "InvocationRateLimitPerSecond": { "type": "number" }, - "SourceArn": { + "Name": { "type": "string" } }, "required": [ - "SourceArn" + "ConnectionArn", + "HttpMethod", + "InvocationEndpoint" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Archive" + "AWS::Events::ApiDestination" ], "type": "string" }, @@ -43628,7 +44018,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Events::EventBus": { + "AWS::Events::Archive": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43660,21 +44050,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "EventSourceName": { + "ArchiveName": { "type": "string" }, - "Name": { + "Description": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "RetentionDays": { + "type": "number" + }, + "SourceArn": { "type": "string" } }, "required": [ - "Name" + "SourceArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBus" + "AWS::Events::Archive" ], "type": "string" }, @@ -43693,7 +44092,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Events::EventBusPolicy": { + "AWS::Events::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43725,33 +44124,28 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + "AuthParameters": { + "type": "object" }, - "EventBusName": { + "AuthorizationType": { "type": "string" }, - "Principal": { + "Description": { "type": "string" }, - "Statement": { - "type": "object" - }, - "StatementId": { + "Name": { "type": "string" } }, "required": [ - "StatementId" + "AuthParameters", + "AuthorizationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::Events::Connection" ], "type": "string" }, @@ -43770,22 +44164,164 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { + "AWS::Events::EventBus": { "additionalProperties": false, "properties": { - "Key": { + "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": { + "EventSourceName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::Events::EventBus" + ], "type": "string" }, - "Value": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Events::Rule": { + "AWS::Events::EventBusPolicy": { + "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": { + "Action": { + "type": "string" + }, + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "EventBusName": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "Statement": { + "type": "object" + }, + "StatementId": { + "type": "string" + } + }, + "required": [ + "StatementId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::EventBusPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51337,6 +51873,86 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IAM::OIDCProvider": { + "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": { + "ClientIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThumbprintList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ThumbprintList" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::OIDCProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::Policy": { "additionalProperties": false, "properties": { @@ -51532,7 +52148,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51564,24 +52180,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "Name": { "type": "string" }, - "CustomSuffix": { + "SamlMetadataDocument": { "type": "string" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "AWSServiceName" + "SamlMetadataDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IAM::SAMLProvider" ], "type": "string" }, @@ -51600,7 +52219,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IAM::ServerCertificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51632,48 +52251,33 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + "CertificateBody": { + "type": "string" }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" + "CertificateChain": { + "type": "string" }, "Path": { "type": "string" }, - "PermissionsBoundary": { + "PrivateKey": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" - }, - "type": "array" + "ServerCertificateName": { + "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IAM::ServerCertificate" ], "type": "string" }, @@ -51691,38 +52295,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "PasswordResetRequired": { - "type": "boolean" - } - }, - "required": [ - "Password" - ], - "type": "object" - }, - "AWS::IAM::User.Policy": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" - }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51754,25 +52327,24 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AWSServiceName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" }, @@ -51791,7 +52363,275 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IVS::Channel": { + "AWS::IAM::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": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::User.LoginProfile": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "PasswordResetRequired": { + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "AWS::IAM::User.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::UserToGroupAddition": { + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GroupName", + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::VirtualMFADevice": { + "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": { + "Path": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VirtualMfaDeviceName": { + "type": "string" + } + }, + "required": [ + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::VirtualMFADevice" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53289,6 +54129,160 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoT::AccountAuditConfiguration": { + "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": { + "AccountId": { + "type": "string" + }, + "AuditCheckConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" + }, + "AuditNotificationTargetConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "AuditCheckConfigurations", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::AccountAuditConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": { + "additionalProperties": false, + "properties": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "ConflictingClientIdsCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateSharedCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotPolicyOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasAllowsAccessToUnusedServicesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "LoggingDisabledCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedCaCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedDeviceCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": { + "additionalProperties": false, + "properties": { + "Sns": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" + } + }, + "type": "object" + }, "AWS::IoT::Authorizer": { "additionalProperties": false, "properties": { @@ -53452,6 +54446,158 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IoT::CustomMetric": { + "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": { + "DisplayName": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "MetricType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MetricType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::CustomMetric" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::Dimension": { + "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": { + "Name": { + "type": "string" + }, + "StringValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "StringValues", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Dimension" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::DomainConfiguration": { "additionalProperties": false, "properties": { @@ -53564,6 +54710,187 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoT::MitigationAction": { + "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": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, "AWS::IoT::Policy": { "additionalProperties": false, "properties": { @@ -53596,21 +54923,171 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::PolicyPrincipalAttachment": { + "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": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ProvisioningTemplate": { + "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" }, - "PolicyName": { + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { "type": "string" } }, "required": [ - "PolicyDocument" + "ProvisioningRoleArn", + "TemplateBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::Policy" + "AWS::IoT::ProvisioningTemplate" ], "type": "string" }, @@ -53629,7 +55106,19 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53661,22 +55150,40 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "DayOfMonth": { "type": "string" }, - "Principal": { + "DayOfWeek": { + "type": "string" + }, + "Frequency": { + "type": "string" + }, + "ScheduledAuditName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetCheckNames": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "PolicyName", - "Principal" + "Frequency", + "TargetCheckNames" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::IoT::ScheduledAudit" ], "type": "string" }, @@ -53695,7 +55202,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate": { + "AWS::IoT::SecurityProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53727,16 +55234,31 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" + "AdditionalMetricsToRetainV2": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "AlertTargets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" + } + }, + "type": "object" }, - "PreProvisioningHook": { - "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + "Behaviors": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" + }, + "type": "array" }, - "ProvisioningRoleArn": { + "SecurityProfileDescription": { + "type": "string" + }, + "SecurityProfileName": { "type": "string" }, "Tags": { @@ -53745,22 +55267,18 @@ var CloudformationSchema = `{ }, "type": "array" }, - "TemplateBody": { - "type": "string" - }, - "TemplateName": { - "type": "string" + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "ProvisioningRoleArn", - "TemplateBody" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::ProvisioningTemplate" + "AWS::IoT::SecurityProfile" ], "type": "string" }, @@ -53774,18 +55292,156 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "AWS::IoT::SecurityProfile.AlertTarget": { "additionalProperties": false, "properties": { - "PayloadVersion": { + "AlertTargetArn": { "type": "string" }, - "TargetArn": { + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AlertTargetArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.Behavior": { + "additionalProperties": false, + "properties": { + "Criteria": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria" + }, + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + }, + "Name": { + "type": "string" + }, + "SuppressAlerts": { + "type": "boolean" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.BehaviorCriteria": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "ConsecutiveDatapointsToAlarm": { + "type": "number" + }, + "ConsecutiveDatapointsToClear": { + "type": "number" + }, + "DurationSeconds": { + "type": "number" + }, + "MlDetectionConfig": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" + }, + "StatisticalThreshold": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": { + "additionalProperties": false, + "properties": { + "ConfidenceLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricDimension": { + "additionalProperties": false, + "properties": { + "DimensionName": { + "type": "string" + }, + "Operator": { + "type": "string" + } + }, + "required": [ + "DimensionName" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricToRetain": { + "additionalProperties": false, + "properties": { + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + } + }, + "required": [ + "Metric" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricValue": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Count": { + "type": "string" + }, + "Number": { + "type": "number" + }, + "Numbers": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Strings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.StatisticalThreshold": { + "additionalProperties": false, + "properties": { + "Statistic": { "type": "string" } }, @@ -56325,6 +57981,12 @@ var CloudformationSchema = `{ "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity": { "additionalProperties": false, "properties": { + "IamRole": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole" + }, + "IamUser": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser" + }, "User": { "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User" } @@ -56343,6 +58005,24 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoTSiteWise::AccessPolicy.IamRole": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamUser": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTSiteWise::AccessPolicy.Portal": { "additionalProperties": false, "properties": { @@ -56520,6 +58200,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AssetModelCompositeModels": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" + }, + "type": "array" + }, "AssetModelDescription": { "type": "string" }, @@ -56571,6 +58257,31 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel": { + "additionalProperties": false, + "properties": { + "CompositeModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { "additionalProperties": false, "properties": { @@ -56597,6 +58308,9 @@ var CloudformationSchema = `{ "DataType": { "type": "string" }, + "DataTypeSpec": { + "type": "string" + }, "LogicalId": { "type": "string" }, @@ -56970,6 +58684,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "PortalAuthMode": { + "type": "string" + }, "PortalContactEmail": { "type": "string" }, @@ -57017,33 +58734,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoTSiteWise::Portal.MonitorErrorDetails": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::IoTSiteWise::Portal.PortalStatus": { - "additionalProperties": false, - "properties": { - "error": { - "$ref": "#/definitions/AWS::IoTSiteWise::Portal.MonitorErrorDetails" - }, - "state": { - "type": "string" - } - }, - "required": [ - "state" - ], - "type": "object" - }, "AWS::IoTSiteWise::Project": { "additionalProperties": false, "properties": { @@ -69133,36 +70823,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::MediaPackage::Channel.HlsIngest": { - "additionalProperties": false, - "properties": { - "ingestEndpoints": { - "items": { - "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::MediaPackage::Channel.IngestEndpoint": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint": { "additionalProperties": false, "properties": { @@ -74206,6 +75866,9 @@ var CloudformationSchema = `{ "Body": { "type": "string" }, + "EntityId": { + "type": "string" + }, "MessageType": { "type": "string" }, @@ -74214,6 +75877,9 @@ var CloudformationSchema = `{ }, "SenderId": { "type": "string" + }, + "TemplateId": { + "type": "string" } }, "type": "object" @@ -76398,18 +78064,6 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DashboardPublishOptions": { "additionalProperties": false, "properties": { @@ -76453,51 +78107,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "CreatedTime": { - "type": "string" - }, - "DataSetArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DataSetReference": { "additionalProperties": false, "properties": { @@ -76629,18 +78238,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Dashboard.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.SheetControlsOption": { "additionalProperties": false, "properties": { @@ -76756,63 +78353,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.ColumnGroupColumnSchema": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnGroupSchema": { - "additionalProperties": false, - "properties": { - "ColumnGroupColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupColumnSchema" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnSchema": { - "additionalProperties": false, - "properties": { - "DataType": { - "type": "string" - }, - "GeographicRole": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.DataSetConfiguration": { - "additionalProperties": false, - "properties": { - "ColumnGroupSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupSchema" - }, - "type": "array" - }, - "DataSetSchema": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetSchema" - }, - "Placeholder": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.DataSetReference": { "additionalProperties": false, "properties": { @@ -76829,18 +78369,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.DataSetSchema": { - "additionalProperties": false, - "properties": { - "ColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnSchema" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.ResourcePermission": { "additionalProperties": false, "properties": { @@ -76860,30 +78388,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.TemplateError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.TemplateSourceAnalysis": { "additionalProperties": false, "properties": { @@ -76927,48 +78431,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.TemplateVersion": { - "additionalProperties": false, - "properties": { - "CreatedTime": { - "type": "string" - }, - "DataSetConfigurations": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetConfiguration" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme": { "additionalProperties": false, "properties": { @@ -77165,51 +78627,6 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::QuickSight::Theme.ThemeError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Theme.ThemeVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "BaseThemeId": { - "type": "string" - }, - "Configuration": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" - }, - "CreatedTime": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeError" - }, - "type": "array" - }, - "Status": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme.TileLayoutStyle": { "additionalProperties": false, "properties": { @@ -82304,24 +83721,555 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "StorageLensConfiguration": { - "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint": { + "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": { + "Bucket": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration" + } + }, + "required": [ + "Bucket", + "Name", + "VpcConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::Bucket": { + "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": { + "BucketName": { + "type": "string" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration" + }, + "OutpostId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BucketName", + "OutpostId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "properties": { + "DaysAfterInitiation": { + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "type": "string" + }, + "ExpirationInDays": { + "type": "number" + }, + "Filter": { + "type": "object" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::BucketPolicy": { + "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": { + "Bucket": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "Bucket", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::BucketPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Endpoint": { + "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": { + "OutpostId": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SecurityGroupId": { + "type": "string" + }, + "SubnetId": { + "type": "string" } }, "required": [ - "StorageLensConfiguration" + "OutpostId", + "SecurityGroupId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::S3::StorageLens" + "AWS::S3Outposts::Endpoint" ], "type": "string" }, @@ -82340,190 +84288,15 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::S3::StorageLens.AccountLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "BucketLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" - } - }, - "required": [ - "BucketLevel" - ], - "type": "object" - }, - "AWS::S3::StorageLens.ActivityMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.AwsOrg": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::S3::StorageLens.BucketLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "PrefixLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.BucketsAndRegions": { - "additionalProperties": false, - "properties": { - "Buckets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Regions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.DataExport": { - "additionalProperties": false, - "properties": { - "S3BucketDestination": { - "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" - } - }, - "required": [ - "S3BucketDestination" - ], - "type": "object" - }, - "AWS::S3::StorageLens.Encryption": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevel": { - "additionalProperties": false, - "properties": { - "StorageMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" - } - }, - "required": [ - "StorageMetrics" - ], - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - }, - "SelectionCriteria": { - "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.S3BucketDestination": { - "additionalProperties": false, - "properties": { - "AccountId": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "Encryption": { - "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" - }, - "Format": { - "type": "string" - }, - "OutputSchemaVersion": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "AccountId", - "Arn", - "Format", - "OutputSchemaVersion" - ], - "type": "object" - }, - "AWS::S3::StorageLens.SelectionCriteria": { - "additionalProperties": false, - "properties": { - "Delimiter": { - "type": "string" - }, - "MaxDepth": { - "type": "number" - }, - "MinStorageBytesPercentage": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.StorageLensConfiguration": { + "AWS::S3Outposts::Endpoint.NetworkInterface": { "additionalProperties": false, "properties": { - "AccountLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" - }, - "AwsOrg": { - "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" - }, - "DataExport": { - "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" - }, - "Exclude": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "Id": { - "type": "string" - }, - "Include": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "IsEnabled": { - "type": "boolean" - }, - "StorageLensArn": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "AccountLevel", - "Id", - "IsEnabled" + "NetworkInterfaceId" ], "type": "object" }, @@ -86313,21 +88086,206 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DataCaptureConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" - }, - "EndpointConfigName": { + "DataCaptureConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" + }, + "EndpointConfigName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "ProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProductionVariants" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::EndpointConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { + "additionalProperties": false, + "properties": { + "CsvContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JsonContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureOption": { + "additionalProperties": false, + "properties": { + "CaptureMode": { + "type": "string" + } + }, + "required": [ + "CaptureMode" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { + "additionalProperties": false, + "properties": { + "CaptureContentTypeHeader": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" + }, + "CaptureOptions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" + }, + "type": "array" + }, + "DestinationS3Uri": { + "type": "string" + }, + "EnableCapture": { + "type": "boolean" + }, + "InitialSamplingPercentage": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CaptureOptions", + "DestinationS3Uri", + "InitialSamplingPercentage" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "additionalProperties": false, + "properties": { + "AcceleratorType": { + "type": "string" + }, + "InitialInstanceCount": { + "type": "number" + }, + "InitialVariantWeight": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ModelName": { + "type": "string" + }, + "VariantName": { + "type": "string" + } + }, + "required": [ + "InitialInstanceCount", + "InitialVariantWeight", + "InstanceType", + "ModelName", + "VariantName" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup": { + "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" }, - "KmsKeyId": { + "EventTimeFeatureName": { "type": "string" }, - "ProductionVariants": { + "FeatureDefinitions": { "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" }, "type": "array" }, + "FeatureGroupName": { + "type": "string" + }, + "OfflineStoreConfig": { + "type": "object" + }, + "OnlineStoreConfig": { + "type": "object" + }, + "RecordIdentifierFeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -86336,13 +88294,16 @@ var CloudformationSchema = `{ } }, "required": [ - "ProductionVariants" + "EventTimeFeatureName", + "FeatureDefinitions", + "FeatureGroupName", + "RecordIdentifierFeatureName" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::EndpointConfig" + "AWS::SageMaker::FeatureGroup" ], "type": "string" }, @@ -86361,100 +88322,23 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { - "additionalProperties": false, - "properties": { - "CsvContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "JsonContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.CaptureOption": { - "additionalProperties": false, - "properties": { - "CaptureMode": { - "type": "string" - } - }, - "required": [ - "CaptureMode" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { - "additionalProperties": false, - "properties": { - "CaptureContentTypeHeader": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" - }, - "CaptureOptions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" - }, - "type": "array" - }, - "DestinationS3Uri": { - "type": "string" - }, - "EnableCapture": { - "type": "boolean" - }, - "InitialSamplingPercentage": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - } - }, - "required": [ - "CaptureOptions", - "DestinationS3Uri", - "InitialSamplingPercentage" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "AWS::SageMaker::FeatureGroup.FeatureDefinition": { "additionalProperties": false, "properties": { - "AcceleratorType": { - "type": "string" - }, - "InitialInstanceCount": { - "type": "number" - }, - "InitialVariantWeight": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ModelName": { + "FeatureName": { "type": "string" }, - "VariantName": { + "FeatureType": { "type": "string" } }, "required": [ - "InitialInstanceCount", - "InitialVariantWeight", - "InstanceType", - "ModelName", - "VariantName" + "FeatureName", + "FeatureType" ], "type": "object" }, - "AWS::SageMaker::FeatureGroup": { + "AWS::SageMaker::Image": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86486,31 +88370,16 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ImageDescription": { "type": "string" }, - "EventTimeFeatureName": { + "ImageDisplayName": { "type": "string" }, - "FeatureDefinitions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" - }, - "type": "array" - }, - "FeatureGroupName": { + "ImageName": { "type": "string" }, - "OfflineStoreConfig": { - "type": "object" - }, - "OnlineStoreConfig": { - "type": "object" - }, - "RecordIdentifierFeatureName": { - "type": "string" - }, - "RoleArn": { + "ImageRoleArn": { "type": "string" }, "Tags": { @@ -86521,16 +88390,14 @@ var CloudformationSchema = `{ } }, "required": [ - "EventTimeFeatureName", - "FeatureDefinitions", - "FeatureGroupName", - "RecordIdentifierFeatureName" + "ImageName", + "ImageRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::FeatureGroup" + "AWS::SageMaker::Image" ], "type": "string" }, @@ -86549,19 +88416,69 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::SageMaker::FeatureGroup.FeatureDefinition": { + "AWS::SageMaker::ImageVersion": { "additionalProperties": false, "properties": { - "FeatureName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "FeatureType": { + "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": { + "BaseImage": { + "type": "string" + }, + "ImageName": { + "type": "string" + } + }, + "required": [ + "BaseImage", + "ImageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ImageVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "FeatureName", - "FeatureType" + "Type", + "Properties" ], "type": "object" }, @@ -86609,6 +88526,9 @@ var CloudformationSchema = `{ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -86693,6 +88613,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -89120,6 +91052,12 @@ var CloudformationSchema = `{ "Name": { "type": "string" }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/AWS::SecretsManager::Secret.ReplicaRegion" + }, + "type": "array" + }, "SecretString": { "type": "string" }, @@ -89188,6 +91126,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SecretsManager::Secret.ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, "AWS::SecretsManager::SecretTargetAttachment": { "additionalProperties": false, "properties": { @@ -91926,6 +93879,9 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "Handler" + ], "type": "object" }, "AWS::Synthetics::Canary.RunConfig": { @@ -91950,9 +93906,6 @@ var CloudformationSchema = `{ "type": "number" } }, - "required": [ - "TimeoutInSeconds" - ], "type": "object" }, "AWS::Synthetics::Canary.Schedule": { @@ -96898,6 +98851,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect" + }, { "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain" }, @@ -97006,6 +98962,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EFS::MountTarget" }, + { + "$ref": "#/definitions/AWS::EKS::Addon" + }, { "$ref": "#/definitions/AWS::EKS::Cluster" }, @@ -97030,6 +98989,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EMR::Step" }, + { + "$ref": "#/definitions/AWS::EMR::Studio" + }, + { + "$ref": "#/definitions/AWS::EMR::StudioSessionMapping" + }, { "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster" }, @@ -97105,9 +99070,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EventSchemas::Schema" }, + { + "$ref": "#/definitions/AWS::Events::ApiDestination" + }, { "$ref": "#/definitions/AWS::Events::Archive" }, + { + "$ref": "#/definitions/AWS::Events::Connection" + }, { "$ref": "#/definitions/AWS::Events::EventBus" }, @@ -97291,12 +99262,21 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IAM::ManagedPolicy" }, + { + "$ref": "#/definitions/AWS::IAM::OIDCProvider" + }, { "$ref": "#/definitions/AWS::IAM::Policy" }, { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::SAMLProvider" + }, + { + "$ref": "#/definitions/AWS::IAM::ServerCertificate" + }, { "$ref": "#/definitions/AWS::IAM::ServiceLinkedRole" }, @@ -97306,6 +99286,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IAM::VirtualMFADevice" + }, { "$ref": "#/definitions/AWS::IVS::Channel" }, @@ -97354,15 +99337,27 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT1Click::Project" }, + { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration" + }, { "$ref": "#/definitions/AWS::IoT::Authorizer" }, { "$ref": "#/definitions/AWS::IoT::Certificate" }, + { + "$ref": "#/definitions/AWS::IoT::CustomMetric" + }, + { + "$ref": "#/definitions/AWS::IoT::Dimension" + }, { "$ref": "#/definitions/AWS::IoT::DomainConfiguration" }, + { + "$ref": "#/definitions/AWS::IoT::MitigationAction" + }, { "$ref": "#/definitions/AWS::IoT::Policy" }, @@ -97372,6 +99367,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ScheduledAudit" + }, + { + "$ref": "#/definitions/AWS::IoT::SecurityProfile" + }, { "$ref": "#/definitions/AWS::IoT::Thing" }, @@ -97897,6 +99898,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::S3::StorageLens" }, + { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Bucket" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::BucketPolicy" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Endpoint" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -97996,6 +100009,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::SageMaker::FeatureGroup" }, + { + "$ref": "#/definitions/AWS::SageMaker::Image" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ImageVersion" + }, { "$ref": "#/definitions/AWS::SageMaker::Model" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index d1a08321e9..04cd397c64 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -12055,6 +12055,18 @@ ], "type": "object" }, + "AWS::Athena::WorkGroup.EngineVersion": { + "additionalProperties": false, + "properties": { + "EffectiveEngineVersion": { + "type": "string" + }, + "SelectedEngineVersion": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Athena::WorkGroup.ResultConfiguration": { "additionalProperties": false, "properties": { @@ -12094,6 +12106,9 @@ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -12115,6 +12130,9 @@ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -13827,6 +13845,12 @@ "type": "string" }, "BackupVaultTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "EncryptionKeyArn": { @@ -15377,6 +15401,9 @@ "Description": { "type": "string" }, + "ImageId": { + "type": "string" + }, "InstanceType": { "type": "string" }, @@ -15685,7 +15712,8 @@ } }, "required": [ - "ModuleName" + "ModuleName", + "ModulePackage" ], "type": "object" }, @@ -19382,6 +19410,9 @@ "Bucket": { "type": "string" }, + "BucketOwner": { + "type": "string" + }, "EncryptionDisabled": { "type": "boolean" }, @@ -25417,6 +25448,9 @@ "Properties": { "additionalProperties": false, "properties": { + "Format": { + "type": "string" + }, "FormatOptions": { "type": "object" }, @@ -27396,6 +27430,9 @@ "Properties": { "additionalProperties": false, "properties": { + "DisableEmailNotification": { + "type": "boolean" + }, "GraphArn": { "type": "string" }, @@ -34217,7 +34254,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomain": { + "AWS::EC2::TransitGatewayConnect": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34250,7 +34287,7 @@ "additionalProperties": false, "properties": { "Options": { - "type": "object" + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" }, "Tags": { "items": { @@ -34258,18 +34295,19 @@ }, "type": "array" }, - "TransitGatewayId": { + "TransportTransitGatewayAttachmentId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "Options", + "TransportTransitGatewayAttachmentId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomain" + "AWS::EC2::TransitGatewayConnect" ], "type": "string" }, @@ -34288,7 +34326,16 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomainAssociation": { + "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomain": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34320,26 +34367,27 @@ "Properties": { "additionalProperties": false, "properties": { - "SubnetId": { - "type": "string" + "Options": { + "type": "object" }, - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayMulticastDomainId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "SubnetId", - "TransitGatewayAttachmentId", - "TransitGatewayMulticastDomainId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomainAssociation" + "AWS::EC2::TransitGatewayMulticastDomain" ], "type": "string" }, @@ -34358,7 +34406,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupMember": { + "AWS::EC2::TransitGatewayMulticastDomainAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34390,10 +34438,10 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupIpAddress": { + "SubnetId": { "type": "string" }, - "NetworkInterfaceId": { + "TransitGatewayAttachmentId": { "type": "string" }, "TransitGatewayMulticastDomainId": { @@ -34401,15 +34449,15 @@ } }, "required": [ - "GroupIpAddress", - "NetworkInterfaceId", + "SubnetId", + "TransitGatewayAttachmentId", "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupMember" + "AWS::EC2::TransitGatewayMulticastDomainAssociation" ], "type": "string" }, @@ -34428,7 +34476,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupSource": { + "AWS::EC2::TransitGatewayMulticastGroupMember": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34479,7 +34527,7 @@ }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupSource" + "AWS::EC2::TransitGatewayMulticastGroupMember" ], "type": "string" }, @@ -34498,7 +34546,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::TransitGatewayMulticastGroupSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34530,95 +34578,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { - "type": "string" - }, - "TransitGatewayAttachmentId": { + "GroupIpAddress": { "type": "string" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRoute" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTable": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "NetworkInterfaceId": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "TransitGatewayMulticastDomainId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "GroupIpAddress", + "NetworkInterfaceId", + "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::TransitGatewayMulticastGroupSource" ], "type": "string" }, @@ -34637,7 +34616,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34669,72 +34648,12 @@ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Blackhole": { + "type": "boolean" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DestinationCidrBlock": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "TransitGatewayAttachmentId": { "type": "string" }, @@ -34743,14 +34662,13 @@ } }, "required": [ - "TransitGatewayAttachmentId", "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" }, @@ -34769,7 +34687,7 @@ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34801,33 +34719,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" - }, - "InstanceTenancy": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TransitGatewayId": { + "type": "string" } }, "required": [ - "CidrBlock" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" }, @@ -34846,7 +34755,7 @@ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34878,24 +34787,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" }, @@ -34914,7 +34821,7 @@ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34946,22 +34853,22 @@ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" }, @@ -34980,7 +34887,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35012,49 +34919,33 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "CidrBlock": { + "type": "string" }, - "PrivateDnsEnabled": { + "EnableDnsHostnames": { "type": "boolean" }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "EnableDnsSupport": { + "type": "boolean" }, - "ServiceName": { + "InstanceTenancy": { "type": "string" }, - "SubnetIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" } }, "required": [ - "ServiceName", - "VpcId" + "CidrBlock" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpoint" + "AWS::EC2::VPC" ], "type": "string" }, @@ -35073,7 +34964,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35105,31 +34996,24 @@ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionNotificationArn": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::VPCCidrBlock" ], "type": "string" }, @@ -35148,7 +35032,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpointService": { + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35180,27 +35064,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AcceptanceRequired": { - "type": "boolean" - }, - "GatewayLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "DhcpOptionsId": { + "type": "string" }, - "NetworkLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "VpcId": { + "type": "string" } }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointService" + "AWS::EC2::VPCDHCPOptionsAssociation" ], "type": "string" }, @@ -35214,11 +35093,12 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::VPCEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35250,24 +35130,49 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "ServiceId": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "ServiceId" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::VPCEndpoint" ], "type": "string" }, @@ -35286,7 +35191,7 @@ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35318,24 +35223,31 @@ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { "type": "string" }, - "VpcId": { + "ServiceId": { "type": "string" }, - "VpnGatewayId": { + "VPCEndpointId": { "type": "string" } }, "required": [ - "VpcId" + "ConnectionEvents", + "ConnectionNotificationArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::VPCEndpointConnectionNotification" ], "type": "string" }, @@ -35354,7 +35266,7 @@ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::VPCEndpointService": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35386,37 +35298,27 @@ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { - "type": "string" + "AcceptanceRequired": { + "type": "boolean" }, - "Tags": { + "GatewayLoadBalancerArns": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "VpcId": { - "type": "string" + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "PeerVpcId", - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::VPCEndpointService" ], "type": "string" }, @@ -35430,12 +35332,11 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35467,43 +35368,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { - "type": "string" - }, - "StaticRoutesOnly": { - "type": "boolean" - }, - "Tags": { + "AllowedPrincipals": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TransitGatewayId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "VpnGatewayId": { + "ServiceId": { "type": "string" - }, - "VpnTunnelOptionsSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" - }, - "type": "array" } }, "required": [ - "CustomerGatewayId", - "Type" + "ServiceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::VPCEndpointServicePermissions" ], "type": "string" }, @@ -35522,19 +35404,7 @@ ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35566,22 +35436,24 @@ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "InternetGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::VPCGatewayAttachment" ], "type": "string" }, @@ -35600,7 +35472,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35632,8 +35504,17 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" }, "Tags": { "items": { @@ -35641,18 +35522,19 @@ }, "type": "array" }, - "Type": { + "VpcId": { "type": "string" } }, "required": [ - "Type" + "PeerVpcId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::VPCPeeringConnection" ], "type": "string" }, @@ -35671,7 +35553,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35703,25 +35585,43 @@ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "CustomerGatewayId": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, "VpnGatewayId": { "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + }, + "type": "array" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "CustomerGatewayId", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::VPNConnection" ], "type": "string" }, @@ -35740,7 +35640,19 @@ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35772,54 +35684,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAttachEnabled": { - "type": "boolean" - }, - "OutpostArn": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "DestinationCidrBlock": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Throughput": { - "type": "number" - }, - "VolumeType": { + "VpnConnectionId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "DestinationCidrBlock", + "VpnConnectionId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::VPNConnectionRoute" ], "type": "string" }, @@ -35838,7 +35718,7 @@ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35870,26 +35750,27 @@ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" + "AmazonSideAsn": { + "type": "number" }, - "InstanceId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VolumeId": { + "Type": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::VPNGateway" ], "type": "string" }, @@ -35908,7 +35789,7 @@ ], "type": "object" }, - "AWS::ECR::PublicRepository": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35940,21 +35821,25 @@ "Properties": { "additionalProperties": false, "properties": { - "RepositoryCatalogData": { - "type": "object" + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "RepositoryName": { + "VpnGatewayId": { "type": "string" - }, - "RepositoryPolicyText": { - "type": "object" } }, + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::PublicRepository" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" }, @@ -35968,11 +35853,12 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::RegistryPolicy": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36004,18 +35890,54 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyText": { - "type": "object" + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Throughput": { + "type": "number" + }, + "VolumeType": { + "type": "string" } }, "required": [ - "PolicyText" + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::RegistryPolicy" + "AWS::EC2::Volume" ], "type": "string" }, @@ -36034,7 +35956,7 @@ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36066,18 +35988,26 @@ "Properties": { "additionalProperties": false, "properties": { - "ReplicationConfiguration": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" } }, "required": [ - "ReplicationConfiguration" + "Device", + "InstanceId", + "VolumeId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::ReplicationConfiguration" + "AWS::EC2::VolumeAttachment" ], "type": "string" }, @@ -36096,53 +36026,247 @@ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" - }, - "type": "array" - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { - "additionalProperties": false, - "properties": { - "Region": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "required": [ - "Region", - "RegistryId" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationRule": { - "additionalProperties": false, - "properties": { - "Destinations": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" - }, - "type": "array" - } - }, - "required": [ - "Destinations" - ], - "type": "object" - }, - "AWS::ECR::Repository": { + "AWS::ECR::PublicRepository": { + "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": { + "RepositoryCatalogData": { + "type": "object" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryPolicyText": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::PublicRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::RegistryPolicy": { + "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": { + "PolicyText": { + "type": "object" + } + }, + "required": [ + "PolicyText" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::RegistryPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration": { + "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": { + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + } + }, + "required": [ + "ReplicationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::ReplicationConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "Region": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "required": [ + "Region", + "RegistryId" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationRule": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" + }, + "type": "array" + } + }, + "required": [ + "Destinations" + ], + "type": "object" + }, + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -38092,6 +38216,87 @@ ], "type": "object" }, + "AWS::EKS::Addon": { + "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": { + "AddonName": { + "type": "string" + }, + "AddonVersion": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "ResolveConflicts": { + "type": "string" + }, + "ServiceAccountRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddonName", + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Addon" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EKS::Cluster": { "additionalProperties": false, "properties": { @@ -40020,6 +40225,186 @@ }, "type": "object" }, + "AWS::EMR::Studio": { + "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": { + "AuthMode": { + "type": "string" + }, + "DefaultS3Location": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineSecurityGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserRole": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "type": "string" + } + }, + "required": [ + "AuthMode", + "DefaultS3Location", + "EngineSecurityGroupId", + "Name", + "ServiceRole", + "SubnetIds", + "UserRole", + "VpcId", + "WorkspaceSecurityGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Studio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::StudioSessionMapping": { + "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": { + "IdentityName": { + "type": "string" + }, + "IdentityType": { + "type": "string" + }, + "SessionPolicyArn": { + "type": "string" + }, + "StudioId": { + "type": "string" + } + }, + "required": [ + "IdentityName", + "IdentityType", + "SessionPolicyArn", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::StudioSessionMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EMRContainers::VirtualCluster": { "additionalProperties": false, "properties": { @@ -43551,7 +43936,7 @@ ], "type": "object" }, - "AWS::Events::Archive": { + "AWS::Events::ApiDestination": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43583,30 +43968,35 @@ "Properties": { "additionalProperties": false, "properties": { - "ArchiveName": { + "ConnectionArn": { "type": "string" }, "Description": { "type": "string" }, - "EventPattern": { - "type": "object" + "HttpMethod": { + "type": "string" }, - "RetentionDays": { + "InvocationEndpoint": { + "type": "string" + }, + "InvocationRateLimitPerSecond": { "type": "number" }, - "SourceArn": { + "Name": { "type": "string" } }, "required": [ - "SourceArn" + "ConnectionArn", + "HttpMethod", + "InvocationEndpoint" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Archive" + "AWS::Events::ApiDestination" ], "type": "string" }, @@ -43625,7 +44015,7 @@ ], "type": "object" }, - "AWS::Events::EventBus": { + "AWS::Events::Archive": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43657,21 +44047,30 @@ "Properties": { "additionalProperties": false, "properties": { - "EventSourceName": { + "ArchiveName": { "type": "string" }, - "Name": { + "Description": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "RetentionDays": { + "type": "number" + }, + "SourceArn": { "type": "string" } }, "required": [ - "Name" + "SourceArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBus" + "AWS::Events::Archive" ], "type": "string" }, @@ -43690,7 +44089,7 @@ ], "type": "object" }, - "AWS::Events::EventBusPolicy": { + "AWS::Events::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43722,33 +44121,28 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + "AuthParameters": { + "type": "object" }, - "EventBusName": { + "AuthorizationType": { "type": "string" }, - "Principal": { + "Description": { "type": "string" }, - "Statement": { - "type": "object" - }, - "StatementId": { + "Name": { "type": "string" } }, "required": [ - "StatementId" + "AuthParameters", + "AuthorizationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::Events::Connection" ], "type": "string" }, @@ -43767,22 +44161,164 @@ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { + "AWS::Events::EventBus": { "additionalProperties": false, "properties": { - "Key": { + "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": { + "EventSourceName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::Events::EventBus" + ], "type": "string" }, - "Value": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Events::Rule": { + "AWS::Events::EventBusPolicy": { + "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": { + "Action": { + "type": "string" + }, + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "EventBusName": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "Statement": { + "type": "object" + }, + "StatementId": { + "type": "string" + } + }, + "required": [ + "StatementId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::EventBusPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51334,6 +51870,86 @@ ], "type": "object" }, + "AWS::IAM::OIDCProvider": { + "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": { + "ClientIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThumbprintList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ThumbprintList" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::OIDCProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::Policy": { "additionalProperties": false, "properties": { @@ -51529,7 +52145,7 @@ ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51561,24 +52177,27 @@ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "Name": { "type": "string" }, - "CustomSuffix": { + "SamlMetadataDocument": { "type": "string" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "AWSServiceName" + "SamlMetadataDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IAM::SAMLProvider" ], "type": "string" }, @@ -51597,7 +52216,7 @@ ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IAM::ServerCertificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51629,48 +52248,33 @@ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + "CertificateBody": { + "type": "string" }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" + "CertificateChain": { + "type": "string" }, "Path": { "type": "string" }, - "PermissionsBoundary": { + "PrivateKey": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" - }, - "type": "array" + "ServerCertificateName": { + "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IAM::ServerCertificate" ], "type": "string" }, @@ -51688,38 +52292,7 @@ ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "PasswordResetRequired": { - "type": "boolean" - } - }, - "required": [ - "Password" - ], - "type": "object" - }, - "AWS::IAM::User.Policy": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" - }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51751,25 +52324,24 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AWSServiceName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" }, @@ -51788,7 +52360,275 @@ ], "type": "object" }, - "AWS::IVS::Channel": { + "AWS::IAM::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": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::User.LoginProfile": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "PasswordResetRequired": { + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "AWS::IAM::User.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::UserToGroupAddition": { + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GroupName", + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::VirtualMFADevice": { + "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": { + "Path": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VirtualMfaDeviceName": { + "type": "string" + } + }, + "required": [ + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::VirtualMFADevice" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53286,6 +54126,160 @@ }, "type": "object" }, + "AWS::IoT::AccountAuditConfiguration": { + "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": { + "AccountId": { + "type": "string" + }, + "AuditCheckConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" + }, + "AuditNotificationTargetConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "AuditCheckConfigurations", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::AccountAuditConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": { + "additionalProperties": false, + "properties": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "ConflictingClientIdsCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateSharedCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotPolicyOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasAllowsAccessToUnusedServicesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "LoggingDisabledCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedCaCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedDeviceCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": { + "additionalProperties": false, + "properties": { + "Sns": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" + } + }, + "type": "object" + }, "AWS::IoT::Authorizer": { "additionalProperties": false, "properties": { @@ -53449,6 +54443,158 @@ ], "type": "object" }, + "AWS::IoT::CustomMetric": { + "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": { + "DisplayName": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "MetricType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MetricType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::CustomMetric" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::Dimension": { + "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": { + "Name": { + "type": "string" + }, + "StringValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "StringValues", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Dimension" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::DomainConfiguration": { "additionalProperties": false, "properties": { @@ -53561,6 +54707,187 @@ }, "type": "object" }, + "AWS::IoT::MitigationAction": { + "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": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, "AWS::IoT::Policy": { "additionalProperties": false, "properties": { @@ -53593,21 +54920,171 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::PolicyPrincipalAttachment": { + "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": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ProvisioningTemplate": { + "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" }, - "PolicyName": { + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { "type": "string" } }, "required": [ - "PolicyDocument" + "ProvisioningRoleArn", + "TemplateBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::Policy" + "AWS::IoT::ProvisioningTemplate" ], "type": "string" }, @@ -53626,7 +55103,19 @@ ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53658,22 +55147,40 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "DayOfMonth": { "type": "string" }, - "Principal": { + "DayOfWeek": { + "type": "string" + }, + "Frequency": { + "type": "string" + }, + "ScheduledAuditName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetCheckNames": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "PolicyName", - "Principal" + "Frequency", + "TargetCheckNames" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::IoT::ScheduledAudit" ], "type": "string" }, @@ -53692,7 +55199,7 @@ ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate": { + "AWS::IoT::SecurityProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53724,16 +55231,31 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" + "AdditionalMetricsToRetainV2": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "AlertTargets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" + } + }, + "type": "object" }, - "PreProvisioningHook": { - "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + "Behaviors": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" + }, + "type": "array" }, - "ProvisioningRoleArn": { + "SecurityProfileDescription": { + "type": "string" + }, + "SecurityProfileName": { "type": "string" }, "Tags": { @@ -53742,22 +55264,18 @@ }, "type": "array" }, - "TemplateBody": { - "type": "string" - }, - "TemplateName": { - "type": "string" + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "ProvisioningRoleArn", - "TemplateBody" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::ProvisioningTemplate" + "AWS::IoT::SecurityProfile" ], "type": "string" }, @@ -53771,18 +55289,156 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "AWS::IoT::SecurityProfile.AlertTarget": { "additionalProperties": false, "properties": { - "PayloadVersion": { + "AlertTargetArn": { "type": "string" }, - "TargetArn": { + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AlertTargetArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.Behavior": { + "additionalProperties": false, + "properties": { + "Criteria": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria" + }, + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + }, + "Name": { + "type": "string" + }, + "SuppressAlerts": { + "type": "boolean" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.BehaviorCriteria": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "ConsecutiveDatapointsToAlarm": { + "type": "number" + }, + "ConsecutiveDatapointsToClear": { + "type": "number" + }, + "DurationSeconds": { + "type": "number" + }, + "MlDetectionConfig": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" + }, + "StatisticalThreshold": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": { + "additionalProperties": false, + "properties": { + "ConfidenceLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricDimension": { + "additionalProperties": false, + "properties": { + "DimensionName": { + "type": "string" + }, + "Operator": { + "type": "string" + } + }, + "required": [ + "DimensionName" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricToRetain": { + "additionalProperties": false, + "properties": { + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + } + }, + "required": [ + "Metric" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricValue": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Count": { + "type": "string" + }, + "Number": { + "type": "number" + }, + "Numbers": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Strings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.StatisticalThreshold": { + "additionalProperties": false, + "properties": { + "Statistic": { "type": "string" } }, @@ -56322,6 +57978,12 @@ "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity": { "additionalProperties": false, "properties": { + "IamRole": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole" + }, + "IamUser": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser" + }, "User": { "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User" } @@ -56340,6 +58002,24 @@ }, "type": "object" }, + "AWS::IoTSiteWise::AccessPolicy.IamRole": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamUser": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTSiteWise::AccessPolicy.Portal": { "additionalProperties": false, "properties": { @@ -56517,6 +58197,12 @@ "Properties": { "additionalProperties": false, "properties": { + "AssetModelCompositeModels": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" + }, + "type": "array" + }, "AssetModelDescription": { "type": "string" }, @@ -56568,6 +58254,31 @@ ], "type": "object" }, + "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel": { + "additionalProperties": false, + "properties": { + "CompositeModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { "additionalProperties": false, "properties": { @@ -56594,6 +58305,9 @@ "DataType": { "type": "string" }, + "DataTypeSpec": { + "type": "string" + }, "LogicalId": { "type": "string" }, @@ -56967,6 +58681,9 @@ "Properties": { "additionalProperties": false, "properties": { + "PortalAuthMode": { + "type": "string" + }, "PortalContactEmail": { "type": "string" }, @@ -57014,33 +58731,6 @@ ], "type": "object" }, - "AWS::IoTSiteWise::Portal.MonitorErrorDetails": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::IoTSiteWise::Portal.PortalStatus": { - "additionalProperties": false, - "properties": { - "error": { - "$ref": "#/definitions/AWS::IoTSiteWise::Portal.MonitorErrorDetails" - }, - "state": { - "type": "string" - } - }, - "required": [ - "state" - ], - "type": "object" - }, "AWS::IoTSiteWise::Project": { "additionalProperties": false, "properties": { @@ -69130,36 +70820,6 @@ ], "type": "object" }, - "AWS::MediaPackage::Channel.HlsIngest": { - "additionalProperties": false, - "properties": { - "ingestEndpoints": { - "items": { - "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::MediaPackage::Channel.IngestEndpoint": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint": { "additionalProperties": false, "properties": { @@ -74203,6 +75863,9 @@ "Body": { "type": "string" }, + "EntityId": { + "type": "string" + }, "MessageType": { "type": "string" }, @@ -74211,6 +75874,9 @@ }, "SenderId": { "type": "string" + }, + "TemplateId": { + "type": "string" } }, "type": "object" @@ -76395,18 +78061,6 @@ }, "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DashboardPublishOptions": { "additionalProperties": false, "properties": { @@ -76450,51 +78104,6 @@ ], "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "CreatedTime": { - "type": "string" - }, - "DataSetArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DataSetReference": { "additionalProperties": false, "properties": { @@ -76626,18 +78235,6 @@ ], "type": "object" }, - "AWS::QuickSight::Dashboard.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.SheetControlsOption": { "additionalProperties": false, "properties": { @@ -76753,63 +78350,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.ColumnGroupColumnSchema": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnGroupSchema": { - "additionalProperties": false, - "properties": { - "ColumnGroupColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupColumnSchema" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnSchema": { - "additionalProperties": false, - "properties": { - "DataType": { - "type": "string" - }, - "GeographicRole": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.DataSetConfiguration": { - "additionalProperties": false, - "properties": { - "ColumnGroupSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupSchema" - }, - "type": "array" - }, - "DataSetSchema": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetSchema" - }, - "Placeholder": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.DataSetReference": { "additionalProperties": false, "properties": { @@ -76826,18 +78366,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.DataSetSchema": { - "additionalProperties": false, - "properties": { - "ColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnSchema" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.ResourcePermission": { "additionalProperties": false, "properties": { @@ -76857,30 +78385,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.TemplateError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.TemplateSourceAnalysis": { "additionalProperties": false, "properties": { @@ -76924,48 +78428,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.TemplateVersion": { - "additionalProperties": false, - "properties": { - "CreatedTime": { - "type": "string" - }, - "DataSetConfigurations": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetConfiguration" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme": { "additionalProperties": false, "properties": { @@ -77162,51 +78624,6 @@ }, "type": "object" }, - "AWS::QuickSight::Theme.ThemeError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Theme.ThemeVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "BaseThemeId": { - "type": "string" - }, - "Configuration": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" - }, - "CreatedTime": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeError" - }, - "type": "array" - }, - "Status": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme.TileLayoutStyle": { "additionalProperties": false, "properties": { @@ -82301,24 +83718,555 @@ "Properties": { "additionalProperties": false, "properties": { - "StorageLensConfiguration": { - "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint": { + "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": { + "Bucket": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration" + } + }, + "required": [ + "Bucket", + "Name", + "VpcConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::Bucket": { + "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": { + "BucketName": { + "type": "string" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration" + }, + "OutpostId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BucketName", + "OutpostId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "properties": { + "DaysAfterInitiation": { + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "type": "string" + }, + "ExpirationInDays": { + "type": "number" + }, + "Filter": { + "type": "object" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::BucketPolicy": { + "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": { + "Bucket": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "Bucket", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::BucketPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Endpoint": { + "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": { + "OutpostId": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SecurityGroupId": { + "type": "string" + }, + "SubnetId": { + "type": "string" } }, "required": [ - "StorageLensConfiguration" + "OutpostId", + "SecurityGroupId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::S3::StorageLens" + "AWS::S3Outposts::Endpoint" ], "type": "string" }, @@ -82337,190 +84285,15 @@ ], "type": "object" }, - "AWS::S3::StorageLens.AccountLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "BucketLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" - } - }, - "required": [ - "BucketLevel" - ], - "type": "object" - }, - "AWS::S3::StorageLens.ActivityMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.AwsOrg": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::S3::StorageLens.BucketLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "PrefixLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.BucketsAndRegions": { - "additionalProperties": false, - "properties": { - "Buckets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Regions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.DataExport": { - "additionalProperties": false, - "properties": { - "S3BucketDestination": { - "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" - } - }, - "required": [ - "S3BucketDestination" - ], - "type": "object" - }, - "AWS::S3::StorageLens.Encryption": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevel": { - "additionalProperties": false, - "properties": { - "StorageMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" - } - }, - "required": [ - "StorageMetrics" - ], - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - }, - "SelectionCriteria": { - "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.S3BucketDestination": { - "additionalProperties": false, - "properties": { - "AccountId": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "Encryption": { - "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" - }, - "Format": { - "type": "string" - }, - "OutputSchemaVersion": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "AccountId", - "Arn", - "Format", - "OutputSchemaVersion" - ], - "type": "object" - }, - "AWS::S3::StorageLens.SelectionCriteria": { - "additionalProperties": false, - "properties": { - "Delimiter": { - "type": "string" - }, - "MaxDepth": { - "type": "number" - }, - "MinStorageBytesPercentage": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.StorageLensConfiguration": { + "AWS::S3Outposts::Endpoint.NetworkInterface": { "additionalProperties": false, "properties": { - "AccountLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" - }, - "AwsOrg": { - "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" - }, - "DataExport": { - "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" - }, - "Exclude": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "Id": { - "type": "string" - }, - "Include": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "IsEnabled": { - "type": "boolean" - }, - "StorageLensArn": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "AccountLevel", - "Id", - "IsEnabled" + "NetworkInterfaceId" ], "type": "object" }, @@ -86310,21 +88083,206 @@ "Properties": { "additionalProperties": false, "properties": { - "DataCaptureConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" - }, - "EndpointConfigName": { + "DataCaptureConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" + }, + "EndpointConfigName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "ProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProductionVariants" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::EndpointConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { + "additionalProperties": false, + "properties": { + "CsvContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JsonContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureOption": { + "additionalProperties": false, + "properties": { + "CaptureMode": { + "type": "string" + } + }, + "required": [ + "CaptureMode" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { + "additionalProperties": false, + "properties": { + "CaptureContentTypeHeader": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" + }, + "CaptureOptions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" + }, + "type": "array" + }, + "DestinationS3Uri": { + "type": "string" + }, + "EnableCapture": { + "type": "boolean" + }, + "InitialSamplingPercentage": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CaptureOptions", + "DestinationS3Uri", + "InitialSamplingPercentage" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "additionalProperties": false, + "properties": { + "AcceleratorType": { + "type": "string" + }, + "InitialInstanceCount": { + "type": "number" + }, + "InitialVariantWeight": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ModelName": { + "type": "string" + }, + "VariantName": { + "type": "string" + } + }, + "required": [ + "InitialInstanceCount", + "InitialVariantWeight", + "InstanceType", + "ModelName", + "VariantName" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup": { + "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" }, - "KmsKeyId": { + "EventTimeFeatureName": { "type": "string" }, - "ProductionVariants": { + "FeatureDefinitions": { "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" }, "type": "array" }, + "FeatureGroupName": { + "type": "string" + }, + "OfflineStoreConfig": { + "type": "object" + }, + "OnlineStoreConfig": { + "type": "object" + }, + "RecordIdentifierFeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -86333,13 +88291,16 @@ } }, "required": [ - "ProductionVariants" + "EventTimeFeatureName", + "FeatureDefinitions", + "FeatureGroupName", + "RecordIdentifierFeatureName" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::EndpointConfig" + "AWS::SageMaker::FeatureGroup" ], "type": "string" }, @@ -86358,100 +88319,23 @@ ], "type": "object" }, - "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { - "additionalProperties": false, - "properties": { - "CsvContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "JsonContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.CaptureOption": { - "additionalProperties": false, - "properties": { - "CaptureMode": { - "type": "string" - } - }, - "required": [ - "CaptureMode" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { - "additionalProperties": false, - "properties": { - "CaptureContentTypeHeader": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" - }, - "CaptureOptions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" - }, - "type": "array" - }, - "DestinationS3Uri": { - "type": "string" - }, - "EnableCapture": { - "type": "boolean" - }, - "InitialSamplingPercentage": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - } - }, - "required": [ - "CaptureOptions", - "DestinationS3Uri", - "InitialSamplingPercentage" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "AWS::SageMaker::FeatureGroup.FeatureDefinition": { "additionalProperties": false, "properties": { - "AcceleratorType": { - "type": "string" - }, - "InitialInstanceCount": { - "type": "number" - }, - "InitialVariantWeight": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ModelName": { + "FeatureName": { "type": "string" }, - "VariantName": { + "FeatureType": { "type": "string" } }, "required": [ - "InitialInstanceCount", - "InitialVariantWeight", - "InstanceType", - "ModelName", - "VariantName" + "FeatureName", + "FeatureType" ], "type": "object" }, - "AWS::SageMaker::FeatureGroup": { + "AWS::SageMaker::Image": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86483,31 +88367,16 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ImageDescription": { "type": "string" }, - "EventTimeFeatureName": { + "ImageDisplayName": { "type": "string" }, - "FeatureDefinitions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" - }, - "type": "array" - }, - "FeatureGroupName": { + "ImageName": { "type": "string" }, - "OfflineStoreConfig": { - "type": "object" - }, - "OnlineStoreConfig": { - "type": "object" - }, - "RecordIdentifierFeatureName": { - "type": "string" - }, - "RoleArn": { + "ImageRoleArn": { "type": "string" }, "Tags": { @@ -86518,16 +88387,14 @@ } }, "required": [ - "EventTimeFeatureName", - "FeatureDefinitions", - "FeatureGroupName", - "RecordIdentifierFeatureName" + "ImageName", + "ImageRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::FeatureGroup" + "AWS::SageMaker::Image" ], "type": "string" }, @@ -86546,19 +88413,69 @@ ], "type": "object" }, - "AWS::SageMaker::FeatureGroup.FeatureDefinition": { + "AWS::SageMaker::ImageVersion": { "additionalProperties": false, "properties": { - "FeatureName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "FeatureType": { + "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": { + "BaseImage": { + "type": "string" + }, + "ImageName": { + "type": "string" + } + }, + "required": [ + "BaseImage", + "ImageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ImageVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "FeatureName", - "FeatureType" + "Type", + "Properties" ], "type": "object" }, @@ -86606,6 +88523,9 @@ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -86690,6 +88610,18 @@ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -89117,6 +91049,12 @@ "Name": { "type": "string" }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/AWS::SecretsManager::Secret.ReplicaRegion" + }, + "type": "array" + }, "SecretString": { "type": "string" }, @@ -89185,6 +91123,21 @@ }, "type": "object" }, + "AWS::SecretsManager::Secret.ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, "AWS::SecretsManager::SecretTargetAttachment": { "additionalProperties": false, "properties": { @@ -91923,6 +93876,9 @@ "type": "string" } }, + "required": [ + "Handler" + ], "type": "object" }, "AWS::Synthetics::Canary.RunConfig": { @@ -91947,9 +93903,6 @@ "type": "number" } }, - "required": [ - "TimeoutInSeconds" - ], "type": "object" }, "AWS::Synthetics::Canary.Schedule": { @@ -96895,6 +98848,9 @@ { "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect" + }, { "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain" }, @@ -97003,6 +98959,9 @@ { "$ref": "#/definitions/AWS::EFS::MountTarget" }, + { + "$ref": "#/definitions/AWS::EKS::Addon" + }, { "$ref": "#/definitions/AWS::EKS::Cluster" }, @@ -97027,6 +98986,12 @@ { "$ref": "#/definitions/AWS::EMR::Step" }, + { + "$ref": "#/definitions/AWS::EMR::Studio" + }, + { + "$ref": "#/definitions/AWS::EMR::StudioSessionMapping" + }, { "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster" }, @@ -97102,9 +99067,15 @@ { "$ref": "#/definitions/AWS::EventSchemas::Schema" }, + { + "$ref": "#/definitions/AWS::Events::ApiDestination" + }, { "$ref": "#/definitions/AWS::Events::Archive" }, + { + "$ref": "#/definitions/AWS::Events::Connection" + }, { "$ref": "#/definitions/AWS::Events::EventBus" }, @@ -97288,12 +99259,21 @@ { "$ref": "#/definitions/AWS::IAM::ManagedPolicy" }, + { + "$ref": "#/definitions/AWS::IAM::OIDCProvider" + }, { "$ref": "#/definitions/AWS::IAM::Policy" }, { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::SAMLProvider" + }, + { + "$ref": "#/definitions/AWS::IAM::ServerCertificate" + }, { "$ref": "#/definitions/AWS::IAM::ServiceLinkedRole" }, @@ -97303,6 +99283,9 @@ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IAM::VirtualMFADevice" + }, { "$ref": "#/definitions/AWS::IVS::Channel" }, @@ -97351,15 +99334,27 @@ { "$ref": "#/definitions/AWS::IoT1Click::Project" }, + { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration" + }, { "$ref": "#/definitions/AWS::IoT::Authorizer" }, { "$ref": "#/definitions/AWS::IoT::Certificate" }, + { + "$ref": "#/definitions/AWS::IoT::CustomMetric" + }, + { + "$ref": "#/definitions/AWS::IoT::Dimension" + }, { "$ref": "#/definitions/AWS::IoT::DomainConfiguration" }, + { + "$ref": "#/definitions/AWS::IoT::MitigationAction" + }, { "$ref": "#/definitions/AWS::IoT::Policy" }, @@ -97369,6 +99364,12 @@ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ScheduledAudit" + }, + { + "$ref": "#/definitions/AWS::IoT::SecurityProfile" + }, { "$ref": "#/definitions/AWS::IoT::Thing" }, @@ -97894,6 +99895,18 @@ { "$ref": "#/definitions/AWS::S3::StorageLens" }, + { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Bucket" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::BucketPolicy" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Endpoint" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -97993,6 +100006,12 @@ { "$ref": "#/definitions/AWS::SageMaker::FeatureGroup" }, + { + "$ref": "#/definitions/AWS::SageMaker::Image" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ImageVersion" + }, { "$ref": "#/definitions/AWS::SageMaker::Model" }, diff --git a/schema/sam.go b/schema/sam.go index a70e2e6a85..028a89b5db 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -12058,6 +12058,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Athena::WorkGroup.EngineVersion": { + "additionalProperties": false, + "properties": { + "EffectiveEngineVersion": { + "type": "string" + }, + "SelectedEngineVersion": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Athena::WorkGroup.ResultConfiguration": { "additionalProperties": false, "properties": { @@ -12097,6 +12109,9 @@ var SamSchema = `{ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -12118,6 +12133,9 @@ var SamSchema = `{ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -13830,6 +13848,12 @@ var SamSchema = `{ "type": "string" }, "BackupVaultTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "EncryptionKeyArn": { @@ -15380,6 +15404,9 @@ var SamSchema = `{ "Description": { "type": "string" }, + "ImageId": { + "type": "string" + }, "InstanceType": { "type": "string" }, @@ -15688,7 +15715,8 @@ var SamSchema = `{ } }, "required": [ - "ModuleName" + "ModuleName", + "ModulePackage" ], "type": "object" }, @@ -19385,6 +19413,9 @@ var SamSchema = `{ "Bucket": { "type": "string" }, + "BucketOwner": { + "type": "string" + }, "EncryptionDisabled": { "type": "boolean" }, @@ -25420,6 +25451,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Format": { + "type": "string" + }, "FormatOptions": { "type": "object" }, @@ -27399,6 +27433,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DisableEmailNotification": { + "type": "boolean" + }, "GraphArn": { "type": "string" }, @@ -34220,7 +34257,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomain": { + "AWS::EC2::TransitGatewayConnect": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34253,7 +34290,7 @@ var SamSchema = `{ "additionalProperties": false, "properties": { "Options": { - "type": "object" + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" }, "Tags": { "items": { @@ -34261,18 +34298,19 @@ var SamSchema = `{ }, "type": "array" }, - "TransitGatewayId": { + "TransportTransitGatewayAttachmentId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "Options", + "TransportTransitGatewayAttachmentId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomain" + "AWS::EC2::TransitGatewayConnect" ], "type": "string" }, @@ -34291,7 +34329,16 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomainAssociation": { + "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomain": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34323,26 +34370,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "SubnetId": { - "type": "string" + "Options": { + "type": "object" }, - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayMulticastDomainId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "SubnetId", - "TransitGatewayAttachmentId", - "TransitGatewayMulticastDomainId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomainAssociation" + "AWS::EC2::TransitGatewayMulticastDomain" ], "type": "string" }, @@ -34361,7 +34409,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupMember": { + "AWS::EC2::TransitGatewayMulticastDomainAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34393,10 +34441,10 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupIpAddress": { + "SubnetId": { "type": "string" }, - "NetworkInterfaceId": { + "TransitGatewayAttachmentId": { "type": "string" }, "TransitGatewayMulticastDomainId": { @@ -34404,15 +34452,15 @@ var SamSchema = `{ } }, "required": [ - "GroupIpAddress", - "NetworkInterfaceId", + "SubnetId", + "TransitGatewayAttachmentId", "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupMember" + "AWS::EC2::TransitGatewayMulticastDomainAssociation" ], "type": "string" }, @@ -34431,7 +34479,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupSource": { + "AWS::EC2::TransitGatewayMulticastGroupMember": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34482,7 +34530,7 @@ var SamSchema = `{ }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupSource" + "AWS::EC2::TransitGatewayMulticastGroupMember" ], "type": "string" }, @@ -34501,7 +34549,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::TransitGatewayMulticastGroupSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34533,95 +34581,26 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { - "type": "string" - }, - "TransitGatewayAttachmentId": { + "GroupIpAddress": { "type": "string" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRoute" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTable": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "NetworkInterfaceId": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "TransitGatewayMulticastDomainId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "GroupIpAddress", + "NetworkInterfaceId", + "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::TransitGatewayMulticastGroupSource" ], "type": "string" }, @@ -34640,7 +34619,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34672,72 +34651,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Blackhole": { + "type": "boolean" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DestinationCidrBlock": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "TransitGatewayAttachmentId": { "type": "string" }, @@ -34746,14 +34665,13 @@ var SamSchema = `{ } }, "required": [ - "TransitGatewayAttachmentId", "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" }, @@ -34772,7 +34690,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34804,33 +34722,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" - }, - "InstanceTenancy": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TransitGatewayId": { + "type": "string" } }, "required": [ - "CidrBlock" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" }, @@ -34849,7 +34758,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34881,24 +34790,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" }, @@ -34917,7 +34824,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34949,22 +34856,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" }, @@ -34983,7 +34890,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35015,49 +34922,33 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "CidrBlock": { + "type": "string" }, - "PrivateDnsEnabled": { + "EnableDnsHostnames": { "type": "boolean" }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "EnableDnsSupport": { + "type": "boolean" }, - "ServiceName": { + "InstanceTenancy": { "type": "string" }, - "SubnetIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" } }, "required": [ - "ServiceName", - "VpcId" + "CidrBlock" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpoint" + "AWS::EC2::VPC" ], "type": "string" }, @@ -35076,7 +34967,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35108,31 +34999,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionNotificationArn": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::VPCCidrBlock" ], "type": "string" }, @@ -35151,7 +35035,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCEndpointService": { + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35183,27 +35067,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AcceptanceRequired": { - "type": "boolean" - }, - "GatewayLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "DhcpOptionsId": { + "type": "string" }, - "NetworkLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "VpcId": { + "type": "string" } }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointService" + "AWS::EC2::VPCDHCPOptionsAssociation" ], "type": "string" }, @@ -35217,11 +35096,12 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::VPCEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35253,24 +35133,49 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "ServiceId": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "ServiceId" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::VPCEndpoint" ], "type": "string" }, @@ -35289,7 +35194,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35321,24 +35226,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { "type": "string" }, - "VpcId": { + "ServiceId": { "type": "string" }, - "VpnGatewayId": { + "VPCEndpointId": { "type": "string" } }, "required": [ - "VpcId" + "ConnectionEvents", + "ConnectionNotificationArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::VPCEndpointConnectionNotification" ], "type": "string" }, @@ -35357,7 +35269,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::VPCEndpointService": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35389,37 +35301,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { - "type": "string" + "AcceptanceRequired": { + "type": "boolean" }, - "Tags": { + "GatewayLoadBalancerArns": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "VpcId": { - "type": "string" + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "PeerVpcId", - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::VPCEndpointService" ], "type": "string" }, @@ -35433,12 +35335,11 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35470,43 +35371,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { - "type": "string" - }, - "StaticRoutesOnly": { - "type": "boolean" - }, - "Tags": { + "AllowedPrincipals": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TransitGatewayId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "VpnGatewayId": { + "ServiceId": { "type": "string" - }, - "VpnTunnelOptionsSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" - }, - "type": "array" } }, "required": [ - "CustomerGatewayId", - "Type" + "ServiceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::VPCEndpointServicePermissions" ], "type": "string" }, @@ -35525,19 +35407,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35569,22 +35439,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "InternetGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::VPCGatewayAttachment" ], "type": "string" }, @@ -35603,7 +35475,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35635,8 +35507,17 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" }, "Tags": { "items": { @@ -35644,18 +35525,19 @@ var SamSchema = `{ }, "type": "array" }, - "Type": { + "VpcId": { "type": "string" } }, "required": [ - "Type" + "PeerVpcId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::VPCPeeringConnection" ], "type": "string" }, @@ -35674,7 +35556,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35706,25 +35588,43 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "CustomerGatewayId": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, "VpnGatewayId": { "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + }, + "type": "array" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "CustomerGatewayId", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::VPNConnection" ], "type": "string" }, @@ -35743,7 +35643,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35775,54 +35687,22 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAttachEnabled": { - "type": "boolean" - }, - "OutpostArn": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "DestinationCidrBlock": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Throughput": { - "type": "number" - }, - "VolumeType": { + "VpnConnectionId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "DestinationCidrBlock", + "VpnConnectionId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::VPNConnectionRoute" ], "type": "string" }, @@ -35841,7 +35721,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35873,26 +35753,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" + "AmazonSideAsn": { + "type": "number" }, - "InstanceId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VolumeId": { + "Type": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::VPNGateway" ], "type": "string" }, @@ -35911,7 +35792,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ECR::PublicRepository": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35943,21 +35824,25 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RepositoryCatalogData": { - "type": "object" + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "RepositoryName": { + "VpnGatewayId": { "type": "string" - }, - "RepositoryPolicyText": { - "type": "object" } }, + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::PublicRepository" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" }, @@ -35971,11 +35856,12 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::RegistryPolicy": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36007,18 +35893,54 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyText": { - "type": "object" + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Throughput": { + "type": "number" + }, + "VolumeType": { + "type": "string" } }, "required": [ - "PolicyText" + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::RegistryPolicy" + "AWS::EC2::Volume" ], "type": "string" }, @@ -36037,7 +35959,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36069,18 +35991,26 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ReplicationConfiguration": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" } }, "required": [ - "ReplicationConfiguration" + "Device", + "InstanceId", + "VolumeId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::ReplicationConfiguration" + "AWS::EC2::VolumeAttachment" ], "type": "string" }, @@ -36099,53 +36029,247 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" - }, - "type": "array" - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { - "additionalProperties": false, - "properties": { - "Region": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "required": [ - "Region", - "RegistryId" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationRule": { - "additionalProperties": false, - "properties": { - "Destinations": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" - }, - "type": "array" - } - }, - "required": [ - "Destinations" - ], - "type": "object" - }, - "AWS::ECR::Repository": { + "AWS::ECR::PublicRepository": { + "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": { + "RepositoryCatalogData": { + "type": "object" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryPolicyText": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::PublicRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::RegistryPolicy": { + "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": { + "PolicyText": { + "type": "object" + } + }, + "required": [ + "PolicyText" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::RegistryPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration": { + "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": { + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + } + }, + "required": [ + "ReplicationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::ReplicationConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "Region": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "required": [ + "Region", + "RegistryId" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationRule": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" + }, + "type": "array" + } + }, + "required": [ + "Destinations" + ], + "type": "object" + }, + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -38095,6 +38219,87 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EKS::Addon": { + "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": { + "AddonName": { + "type": "string" + }, + "AddonVersion": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "ResolveConflicts": { + "type": "string" + }, + "ServiceAccountRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddonName", + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Addon" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EKS::Cluster": { "additionalProperties": false, "properties": { @@ -40023,6 +40228,186 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EMR::Studio": { + "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": { + "AuthMode": { + "type": "string" + }, + "DefaultS3Location": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineSecurityGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserRole": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "type": "string" + } + }, + "required": [ + "AuthMode", + "DefaultS3Location", + "EngineSecurityGroupId", + "Name", + "ServiceRole", + "SubnetIds", + "UserRole", + "VpcId", + "WorkspaceSecurityGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Studio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::StudioSessionMapping": { + "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": { + "IdentityName": { + "type": "string" + }, + "IdentityType": { + "type": "string" + }, + "SessionPolicyArn": { + "type": "string" + }, + "StudioId": { + "type": "string" + } + }, + "required": [ + "IdentityName", + "IdentityType", + "SessionPolicyArn", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::StudioSessionMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EMRContainers::VirtualCluster": { "additionalProperties": false, "properties": { @@ -43554,7 +43939,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Events::Archive": { + "AWS::Events::ApiDestination": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43586,30 +43971,35 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ArchiveName": { + "ConnectionArn": { "type": "string" }, "Description": { "type": "string" }, - "EventPattern": { - "type": "object" + "HttpMethod": { + "type": "string" }, - "RetentionDays": { + "InvocationEndpoint": { + "type": "string" + }, + "InvocationRateLimitPerSecond": { "type": "number" }, - "SourceArn": { + "Name": { "type": "string" } }, "required": [ - "SourceArn" + "ConnectionArn", + "HttpMethod", + "InvocationEndpoint" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Archive" + "AWS::Events::ApiDestination" ], "type": "string" }, @@ -43628,7 +44018,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Events::EventBus": { + "AWS::Events::Archive": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43660,21 +44050,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "EventSourceName": { + "ArchiveName": { "type": "string" }, - "Name": { + "Description": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "RetentionDays": { + "type": "number" + }, + "SourceArn": { "type": "string" } }, "required": [ - "Name" + "SourceArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBus" + "AWS::Events::Archive" ], "type": "string" }, @@ -43693,7 +44092,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Events::EventBusPolicy": { + "AWS::Events::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43725,33 +44124,28 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + "AuthParameters": { + "type": "object" }, - "EventBusName": { + "AuthorizationType": { "type": "string" }, - "Principal": { + "Description": { "type": "string" }, - "Statement": { - "type": "object" - }, - "StatementId": { + "Name": { "type": "string" } }, "required": [ - "StatementId" + "AuthParameters", + "AuthorizationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::Events::Connection" ], "type": "string" }, @@ -43770,22 +44164,164 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { + "AWS::Events::EventBus": { "additionalProperties": false, "properties": { - "Key": { + "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": { + "EventSourceName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::Events::EventBus" + ], "type": "string" }, - "Value": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Events::Rule": { + "AWS::Events::EventBusPolicy": { + "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": { + "Action": { + "type": "string" + }, + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "EventBusName": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "Statement": { + "type": "object" + }, + "StatementId": { + "type": "string" + } + }, + "required": [ + "StatementId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::EventBusPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51337,6 +51873,86 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IAM::OIDCProvider": { + "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": { + "ClientIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThumbprintList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ThumbprintList" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::OIDCProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::Policy": { "additionalProperties": false, "properties": { @@ -51532,7 +52148,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51564,24 +52180,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "Name": { "type": "string" }, - "CustomSuffix": { + "SamlMetadataDocument": { "type": "string" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "AWSServiceName" + "SamlMetadataDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IAM::SAMLProvider" ], "type": "string" }, @@ -51600,7 +52219,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IAM::ServerCertificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51632,48 +52251,33 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + "CertificateBody": { + "type": "string" }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" + "CertificateChain": { + "type": "string" }, "Path": { "type": "string" }, - "PermissionsBoundary": { + "PrivateKey": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" - }, - "type": "array" + "ServerCertificateName": { + "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IAM::ServerCertificate" ], "type": "string" }, @@ -51691,38 +52295,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "PasswordResetRequired": { - "type": "boolean" - } - }, - "required": [ - "Password" - ], - "type": "object" - }, - "AWS::IAM::User.Policy": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" - }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51754,25 +52327,24 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AWSServiceName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" }, @@ -51791,7 +52363,275 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IVS::Channel": { + "AWS::IAM::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": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::User.LoginProfile": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "PasswordResetRequired": { + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "AWS::IAM::User.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::UserToGroupAddition": { + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GroupName", + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::VirtualMFADevice": { + "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": { + "Path": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VirtualMfaDeviceName": { + "type": "string" + } + }, + "required": [ + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::VirtualMFADevice" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53289,6 +54129,160 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoT::AccountAuditConfiguration": { + "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": { + "AccountId": { + "type": "string" + }, + "AuditCheckConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" + }, + "AuditNotificationTargetConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "AuditCheckConfigurations", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::AccountAuditConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": { + "additionalProperties": false, + "properties": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "ConflictingClientIdsCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateSharedCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotPolicyOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasAllowsAccessToUnusedServicesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "LoggingDisabledCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedCaCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedDeviceCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": { + "additionalProperties": false, + "properties": { + "Sns": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" + } + }, + "type": "object" + }, "AWS::IoT::Authorizer": { "additionalProperties": false, "properties": { @@ -53452,6 +54446,158 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IoT::CustomMetric": { + "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": { + "DisplayName": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "MetricType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MetricType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::CustomMetric" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::Dimension": { + "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": { + "Name": { + "type": "string" + }, + "StringValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "StringValues", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Dimension" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::DomainConfiguration": { "additionalProperties": false, "properties": { @@ -53564,6 +54710,187 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoT::MitigationAction": { + "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": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, "AWS::IoT::Policy": { "additionalProperties": false, "properties": { @@ -53596,21 +54923,171 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::PolicyPrincipalAttachment": { + "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": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ProvisioningTemplate": { + "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" }, - "PolicyName": { + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { "type": "string" } }, "required": [ - "PolicyDocument" + "ProvisioningRoleArn", + "TemplateBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::Policy" + "AWS::IoT::ProvisioningTemplate" ], "type": "string" }, @@ -53629,7 +55106,19 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53661,22 +55150,40 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "DayOfMonth": { "type": "string" }, - "Principal": { + "DayOfWeek": { + "type": "string" + }, + "Frequency": { + "type": "string" + }, + "ScheduledAuditName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetCheckNames": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "PolicyName", - "Principal" + "Frequency", + "TargetCheckNames" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::IoT::ScheduledAudit" ], "type": "string" }, @@ -53695,7 +55202,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate": { + "AWS::IoT::SecurityProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53727,16 +55234,31 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" + "AdditionalMetricsToRetainV2": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "AlertTargets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" + } + }, + "type": "object" }, - "PreProvisioningHook": { - "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + "Behaviors": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" + }, + "type": "array" }, - "ProvisioningRoleArn": { + "SecurityProfileDescription": { + "type": "string" + }, + "SecurityProfileName": { "type": "string" }, "Tags": { @@ -53745,22 +55267,18 @@ var SamSchema = `{ }, "type": "array" }, - "TemplateBody": { - "type": "string" - }, - "TemplateName": { - "type": "string" + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "ProvisioningRoleArn", - "TemplateBody" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::ProvisioningTemplate" + "AWS::IoT::SecurityProfile" ], "type": "string" }, @@ -53774,18 +55292,156 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "AWS::IoT::SecurityProfile.AlertTarget": { "additionalProperties": false, "properties": { - "PayloadVersion": { + "AlertTargetArn": { "type": "string" }, - "TargetArn": { + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AlertTargetArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.Behavior": { + "additionalProperties": false, + "properties": { + "Criteria": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria" + }, + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + }, + "Name": { + "type": "string" + }, + "SuppressAlerts": { + "type": "boolean" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.BehaviorCriteria": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "ConsecutiveDatapointsToAlarm": { + "type": "number" + }, + "ConsecutiveDatapointsToClear": { + "type": "number" + }, + "DurationSeconds": { + "type": "number" + }, + "MlDetectionConfig": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" + }, + "StatisticalThreshold": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": { + "additionalProperties": false, + "properties": { + "ConfidenceLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricDimension": { + "additionalProperties": false, + "properties": { + "DimensionName": { + "type": "string" + }, + "Operator": { + "type": "string" + } + }, + "required": [ + "DimensionName" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricToRetain": { + "additionalProperties": false, + "properties": { + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + } + }, + "required": [ + "Metric" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricValue": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Count": { + "type": "string" + }, + "Number": { + "type": "number" + }, + "Numbers": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Strings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.StatisticalThreshold": { + "additionalProperties": false, + "properties": { + "Statistic": { "type": "string" } }, @@ -56325,6 +57981,12 @@ var SamSchema = `{ "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity": { "additionalProperties": false, "properties": { + "IamRole": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole" + }, + "IamUser": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser" + }, "User": { "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User" } @@ -56343,6 +58005,24 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoTSiteWise::AccessPolicy.IamRole": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamUser": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTSiteWise::AccessPolicy.Portal": { "additionalProperties": false, "properties": { @@ -56520,6 +58200,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AssetModelCompositeModels": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" + }, + "type": "array" + }, "AssetModelDescription": { "type": "string" }, @@ -56571,6 +58257,31 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel": { + "additionalProperties": false, + "properties": { + "CompositeModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { "additionalProperties": false, "properties": { @@ -56597,6 +58308,9 @@ var SamSchema = `{ "DataType": { "type": "string" }, + "DataTypeSpec": { + "type": "string" + }, "LogicalId": { "type": "string" }, @@ -56970,6 +58684,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "PortalAuthMode": { + "type": "string" + }, "PortalContactEmail": { "type": "string" }, @@ -57017,33 +58734,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoTSiteWise::Portal.MonitorErrorDetails": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::IoTSiteWise::Portal.PortalStatus": { - "additionalProperties": false, - "properties": { - "error": { - "$ref": "#/definitions/AWS::IoTSiteWise::Portal.MonitorErrorDetails" - }, - "state": { - "type": "string" - } - }, - "required": [ - "state" - ], - "type": "object" - }, "AWS::IoTSiteWise::Project": { "additionalProperties": false, "properties": { @@ -69133,36 +70823,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::MediaPackage::Channel.HlsIngest": { - "additionalProperties": false, - "properties": { - "ingestEndpoints": { - "items": { - "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::MediaPackage::Channel.IngestEndpoint": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint": { "additionalProperties": false, "properties": { @@ -74206,6 +75866,9 @@ var SamSchema = `{ "Body": { "type": "string" }, + "EntityId": { + "type": "string" + }, "MessageType": { "type": "string" }, @@ -74214,6 +75877,9 @@ var SamSchema = `{ }, "SenderId": { "type": "string" + }, + "TemplateId": { + "type": "string" } }, "type": "object" @@ -76398,18 +78064,6 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DashboardPublishOptions": { "additionalProperties": false, "properties": { @@ -76453,51 +78107,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "CreatedTime": { - "type": "string" - }, - "DataSetArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DataSetReference": { "additionalProperties": false, "properties": { @@ -76629,18 +78238,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Dashboard.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.SheetControlsOption": { "additionalProperties": false, "properties": { @@ -76756,63 +78353,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.ColumnGroupColumnSchema": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnGroupSchema": { - "additionalProperties": false, - "properties": { - "ColumnGroupColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupColumnSchema" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnSchema": { - "additionalProperties": false, - "properties": { - "DataType": { - "type": "string" - }, - "GeographicRole": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.DataSetConfiguration": { - "additionalProperties": false, - "properties": { - "ColumnGroupSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupSchema" - }, - "type": "array" - }, - "DataSetSchema": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetSchema" - }, - "Placeholder": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.DataSetReference": { "additionalProperties": false, "properties": { @@ -76829,18 +78369,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.DataSetSchema": { - "additionalProperties": false, - "properties": { - "ColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnSchema" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.ResourcePermission": { "additionalProperties": false, "properties": { @@ -76860,30 +78388,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.TemplateError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.TemplateSourceAnalysis": { "additionalProperties": false, "properties": { @@ -76927,48 +78431,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::QuickSight::Template.TemplateVersion": { - "additionalProperties": false, - "properties": { - "CreatedTime": { - "type": "string" - }, - "DataSetConfigurations": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetConfiguration" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme": { "additionalProperties": false, "properties": { @@ -77165,51 +78627,6 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::QuickSight::Theme.ThemeError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Theme.ThemeVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "BaseThemeId": { - "type": "string" - }, - "Configuration": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" - }, - "CreatedTime": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeError" - }, - "type": "array" - }, - "Status": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme.TileLayoutStyle": { "additionalProperties": false, "properties": { @@ -82304,24 +83721,555 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "StorageLensConfiguration": { - "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint": { + "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": { + "Bucket": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration" + } + }, + "required": [ + "Bucket", + "Name", + "VpcConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::Bucket": { + "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": { + "BucketName": { + "type": "string" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration" + }, + "OutpostId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BucketName", + "OutpostId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "properties": { + "DaysAfterInitiation": { + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "type": "string" + }, + "ExpirationInDays": { + "type": "number" + }, + "Filter": { + "type": "object" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::BucketPolicy": { + "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": { + "Bucket": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "Bucket", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::BucketPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Endpoint": { + "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": { + "OutpostId": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SecurityGroupId": { + "type": "string" + }, + "SubnetId": { + "type": "string" } }, "required": [ - "StorageLensConfiguration" + "OutpostId", + "SecurityGroupId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::S3::StorageLens" + "AWS::S3Outposts::Endpoint" ], "type": "string" }, @@ -82340,190 +84288,15 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::S3::StorageLens.AccountLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "BucketLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" - } - }, - "required": [ - "BucketLevel" - ], - "type": "object" - }, - "AWS::S3::StorageLens.ActivityMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.AwsOrg": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::S3::StorageLens.BucketLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "PrefixLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.BucketsAndRegions": { - "additionalProperties": false, - "properties": { - "Buckets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Regions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.DataExport": { - "additionalProperties": false, - "properties": { - "S3BucketDestination": { - "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" - } - }, - "required": [ - "S3BucketDestination" - ], - "type": "object" - }, - "AWS::S3::StorageLens.Encryption": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevel": { - "additionalProperties": false, - "properties": { - "StorageMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" - } - }, - "required": [ - "StorageMetrics" - ], - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - }, - "SelectionCriteria": { - "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.S3BucketDestination": { - "additionalProperties": false, - "properties": { - "AccountId": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "Encryption": { - "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" - }, - "Format": { - "type": "string" - }, - "OutputSchemaVersion": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "AccountId", - "Arn", - "Format", - "OutputSchemaVersion" - ], - "type": "object" - }, - "AWS::S3::StorageLens.SelectionCriteria": { - "additionalProperties": false, - "properties": { - "Delimiter": { - "type": "string" - }, - "MaxDepth": { - "type": "number" - }, - "MinStorageBytesPercentage": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.StorageLensConfiguration": { + "AWS::S3Outposts::Endpoint.NetworkInterface": { "additionalProperties": false, "properties": { - "AccountLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" - }, - "AwsOrg": { - "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" - }, - "DataExport": { - "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" - }, - "Exclude": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "Id": { - "type": "string" - }, - "Include": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "IsEnabled": { - "type": "boolean" - }, - "StorageLensArn": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "AccountLevel", - "Id", - "IsEnabled" + "NetworkInterfaceId" ], "type": "object" }, @@ -86313,21 +88086,206 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DataCaptureConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" - }, - "EndpointConfigName": { + "DataCaptureConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" + }, + "EndpointConfigName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "ProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProductionVariants" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::EndpointConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { + "additionalProperties": false, + "properties": { + "CsvContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JsonContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureOption": { + "additionalProperties": false, + "properties": { + "CaptureMode": { + "type": "string" + } + }, + "required": [ + "CaptureMode" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { + "additionalProperties": false, + "properties": { + "CaptureContentTypeHeader": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" + }, + "CaptureOptions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" + }, + "type": "array" + }, + "DestinationS3Uri": { + "type": "string" + }, + "EnableCapture": { + "type": "boolean" + }, + "InitialSamplingPercentage": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CaptureOptions", + "DestinationS3Uri", + "InitialSamplingPercentage" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "additionalProperties": false, + "properties": { + "AcceleratorType": { + "type": "string" + }, + "InitialInstanceCount": { + "type": "number" + }, + "InitialVariantWeight": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ModelName": { + "type": "string" + }, + "VariantName": { + "type": "string" + } + }, + "required": [ + "InitialInstanceCount", + "InitialVariantWeight", + "InstanceType", + "ModelName", + "VariantName" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup": { + "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" }, - "KmsKeyId": { + "EventTimeFeatureName": { "type": "string" }, - "ProductionVariants": { + "FeatureDefinitions": { "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" }, "type": "array" }, + "FeatureGroupName": { + "type": "string" + }, + "OfflineStoreConfig": { + "type": "object" + }, + "OnlineStoreConfig": { + "type": "object" + }, + "RecordIdentifierFeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -86336,13 +88294,16 @@ var SamSchema = `{ } }, "required": [ - "ProductionVariants" + "EventTimeFeatureName", + "FeatureDefinitions", + "FeatureGroupName", + "RecordIdentifierFeatureName" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::EndpointConfig" + "AWS::SageMaker::FeatureGroup" ], "type": "string" }, @@ -86361,100 +88322,23 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { - "additionalProperties": false, - "properties": { - "CsvContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "JsonContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.CaptureOption": { - "additionalProperties": false, - "properties": { - "CaptureMode": { - "type": "string" - } - }, - "required": [ - "CaptureMode" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { - "additionalProperties": false, - "properties": { - "CaptureContentTypeHeader": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" - }, - "CaptureOptions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" - }, - "type": "array" - }, - "DestinationS3Uri": { - "type": "string" - }, - "EnableCapture": { - "type": "boolean" - }, - "InitialSamplingPercentage": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - } - }, - "required": [ - "CaptureOptions", - "DestinationS3Uri", - "InitialSamplingPercentage" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "AWS::SageMaker::FeatureGroup.FeatureDefinition": { "additionalProperties": false, "properties": { - "AcceleratorType": { - "type": "string" - }, - "InitialInstanceCount": { - "type": "number" - }, - "InitialVariantWeight": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ModelName": { + "FeatureName": { "type": "string" }, - "VariantName": { + "FeatureType": { "type": "string" } }, "required": [ - "InitialInstanceCount", - "InitialVariantWeight", - "InstanceType", - "ModelName", - "VariantName" + "FeatureName", + "FeatureType" ], "type": "object" }, - "AWS::SageMaker::FeatureGroup": { + "AWS::SageMaker::Image": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86486,31 +88370,16 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ImageDescription": { "type": "string" }, - "EventTimeFeatureName": { + "ImageDisplayName": { "type": "string" }, - "FeatureDefinitions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" - }, - "type": "array" - }, - "FeatureGroupName": { + "ImageName": { "type": "string" }, - "OfflineStoreConfig": { - "type": "object" - }, - "OnlineStoreConfig": { - "type": "object" - }, - "RecordIdentifierFeatureName": { - "type": "string" - }, - "RoleArn": { + "ImageRoleArn": { "type": "string" }, "Tags": { @@ -86521,16 +88390,14 @@ var SamSchema = `{ } }, "required": [ - "EventTimeFeatureName", - "FeatureDefinitions", - "FeatureGroupName", - "RecordIdentifierFeatureName" + "ImageName", + "ImageRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::FeatureGroup" + "AWS::SageMaker::Image" ], "type": "string" }, @@ -86549,19 +88416,69 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::SageMaker::FeatureGroup.FeatureDefinition": { + "AWS::SageMaker::ImageVersion": { "additionalProperties": false, "properties": { - "FeatureName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "FeatureType": { + "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": { + "BaseImage": { + "type": "string" + }, + "ImageName": { + "type": "string" + } + }, + "required": [ + "BaseImage", + "ImageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ImageVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "FeatureName", - "FeatureType" + "Type", + "Properties" ], "type": "object" }, @@ -86609,6 +88526,9 @@ var SamSchema = `{ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -86693,6 +88613,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -89120,6 +91052,12 @@ var SamSchema = `{ "Name": { "type": "string" }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/AWS::SecretsManager::Secret.ReplicaRegion" + }, + "type": "array" + }, "SecretString": { "type": "string" }, @@ -89188,6 +91126,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SecretsManager::Secret.ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, "AWS::SecretsManager::SecretTargetAttachment": { "additionalProperties": false, "properties": { @@ -93770,6 +95723,9 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "Handler" + ], "type": "object" }, "AWS::Synthetics::Canary.RunConfig": { @@ -93794,9 +95750,6 @@ var SamSchema = `{ "type": "number" } }, - "required": [ - "TimeoutInSeconds" - ], "type": "object" }, "AWS::Synthetics::Canary.Schedule": { @@ -98742,6 +100695,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect" + }, { "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain" }, @@ -98850,6 +100806,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EFS::MountTarget" }, + { + "$ref": "#/definitions/AWS::EKS::Addon" + }, { "$ref": "#/definitions/AWS::EKS::Cluster" }, @@ -98874,6 +100833,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EMR::Step" }, + { + "$ref": "#/definitions/AWS::EMR::Studio" + }, + { + "$ref": "#/definitions/AWS::EMR::StudioSessionMapping" + }, { "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster" }, @@ -98949,9 +100914,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EventSchemas::Schema" }, + { + "$ref": "#/definitions/AWS::Events::ApiDestination" + }, { "$ref": "#/definitions/AWS::Events::Archive" }, + { + "$ref": "#/definitions/AWS::Events::Connection" + }, { "$ref": "#/definitions/AWS::Events::EventBus" }, @@ -99135,12 +101106,21 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IAM::ManagedPolicy" }, + { + "$ref": "#/definitions/AWS::IAM::OIDCProvider" + }, { "$ref": "#/definitions/AWS::IAM::Policy" }, { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::SAMLProvider" + }, + { + "$ref": "#/definitions/AWS::IAM::ServerCertificate" + }, { "$ref": "#/definitions/AWS::IAM::ServiceLinkedRole" }, @@ -99150,6 +101130,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IAM::VirtualMFADevice" + }, { "$ref": "#/definitions/AWS::IVS::Channel" }, @@ -99198,15 +101181,27 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT1Click::Project" }, + { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration" + }, { "$ref": "#/definitions/AWS::IoT::Authorizer" }, { "$ref": "#/definitions/AWS::IoT::Certificate" }, + { + "$ref": "#/definitions/AWS::IoT::CustomMetric" + }, + { + "$ref": "#/definitions/AWS::IoT::Dimension" + }, { "$ref": "#/definitions/AWS::IoT::DomainConfiguration" }, + { + "$ref": "#/definitions/AWS::IoT::MitigationAction" + }, { "$ref": "#/definitions/AWS::IoT::Policy" }, @@ -99216,6 +101211,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ScheduledAudit" + }, + { + "$ref": "#/definitions/AWS::IoT::SecurityProfile" + }, { "$ref": "#/definitions/AWS::IoT::Thing" }, @@ -99741,6 +101742,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::S3::StorageLens" }, + { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Bucket" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::BucketPolicy" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Endpoint" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -99840,6 +101853,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::SageMaker::FeatureGroup" }, + { + "$ref": "#/definitions/AWS::SageMaker::Image" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ImageVersion" + }, { "$ref": "#/definitions/AWS::SageMaker::Model" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 82770256ee..8fbe375086 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -12055,6 +12055,18 @@ ], "type": "object" }, + "AWS::Athena::WorkGroup.EngineVersion": { + "additionalProperties": false, + "properties": { + "EffectiveEngineVersion": { + "type": "string" + }, + "SelectedEngineVersion": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Athena::WorkGroup.ResultConfiguration": { "additionalProperties": false, "properties": { @@ -12094,6 +12106,9 @@ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -12115,6 +12130,9 @@ "EnforceWorkGroupConfiguration": { "type": "boolean" }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, "PublishCloudWatchMetricsEnabled": { "type": "boolean" }, @@ -13827,6 +13845,12 @@ "type": "string" }, "BackupVaultTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "EncryptionKeyArn": { @@ -15377,6 +15401,9 @@ "Description": { "type": "string" }, + "ImageId": { + "type": "string" + }, "InstanceType": { "type": "string" }, @@ -15685,7 +15712,8 @@ } }, "required": [ - "ModuleName" + "ModuleName", + "ModulePackage" ], "type": "object" }, @@ -19382,6 +19410,9 @@ "Bucket": { "type": "string" }, + "BucketOwner": { + "type": "string" + }, "EncryptionDisabled": { "type": "boolean" }, @@ -25417,6 +25448,9 @@ "Properties": { "additionalProperties": false, "properties": { + "Format": { + "type": "string" + }, "FormatOptions": { "type": "object" }, @@ -27396,6 +27430,9 @@ "Properties": { "additionalProperties": false, "properties": { + "DisableEmailNotification": { + "type": "boolean" + }, "GraphArn": { "type": "string" }, @@ -34217,7 +34254,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomain": { + "AWS::EC2::TransitGatewayConnect": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34250,7 +34287,7 @@ "additionalProperties": false, "properties": { "Options": { - "type": "object" + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" }, "Tags": { "items": { @@ -34258,18 +34295,19 @@ }, "type": "array" }, - "TransitGatewayId": { + "TransportTransitGatewayAttachmentId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "Options", + "TransportTransitGatewayAttachmentId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomain" + "AWS::EC2::TransitGatewayConnect" ], "type": "string" }, @@ -34288,7 +34326,16 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastDomainAssociation": { + "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomain": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34320,26 +34367,27 @@ "Properties": { "additionalProperties": false, "properties": { - "SubnetId": { - "type": "string" + "Options": { + "type": "object" }, - "TransitGatewayAttachmentId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "TransitGatewayMulticastDomainId": { + "TransitGatewayId": { "type": "string" } }, "required": [ - "SubnetId", - "TransitGatewayAttachmentId", - "TransitGatewayMulticastDomainId" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastDomainAssociation" + "AWS::EC2::TransitGatewayMulticastDomain" ], "type": "string" }, @@ -34358,7 +34406,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupMember": { + "AWS::EC2::TransitGatewayMulticastDomainAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34390,10 +34438,10 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupIpAddress": { + "SubnetId": { "type": "string" }, - "NetworkInterfaceId": { + "TransitGatewayAttachmentId": { "type": "string" }, "TransitGatewayMulticastDomainId": { @@ -34401,15 +34449,15 @@ } }, "required": [ - "GroupIpAddress", - "NetworkInterfaceId", + "SubnetId", + "TransitGatewayAttachmentId", "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupMember" + "AWS::EC2::TransitGatewayMulticastDomainAssociation" ], "type": "string" }, @@ -34428,7 +34476,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayMulticastGroupSource": { + "AWS::EC2::TransitGatewayMulticastGroupMember": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34479,7 +34527,7 @@ }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayMulticastGroupSource" + "AWS::EC2::TransitGatewayMulticastGroupMember" ], "type": "string" }, @@ -34498,7 +34546,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRoute": { + "AWS::EC2::TransitGatewayMulticastGroupSource": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34530,95 +34578,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Blackhole": { - "type": "boolean" - }, - "DestinationCidrBlock": { - "type": "string" - }, - "TransitGatewayAttachmentId": { + "GroupIpAddress": { "type": "string" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRoute" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTable": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "NetworkInterfaceId": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TransitGatewayId": { + "TransitGatewayMulticastDomainId": { "type": "string" } }, "required": [ - "TransitGatewayId" + "GroupIpAddress", + "NetworkInterfaceId", + "TransitGatewayMulticastDomainId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTable" + "AWS::EC2::TransitGatewayMulticastGroupSource" ], "type": "string" }, @@ -34637,7 +34616,7 @@ ], "type": "object" }, - "AWS::EC2::TransitGatewayRouteTableAssociation": { + "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34669,72 +34648,12 @@ "Properties": { "additionalProperties": false, "properties": { - "TransitGatewayAttachmentId": { - "type": "string" + "Blackhole": { + "type": "boolean" }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "required": [ - "TransitGatewayAttachmentId", - "TransitGatewayRouteTableId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::EC2::TransitGatewayRouteTableAssociation" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::EC2::TransitGatewayRouteTablePropagation": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "DestinationCidrBlock": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "TransitGatewayAttachmentId": { "type": "string" }, @@ -34743,14 +34662,13 @@ } }, "required": [ - "TransitGatewayAttachmentId", "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::TransitGatewayRouteTablePropagation" + "AWS::EC2::TransitGatewayRoute" ], "type": "string" }, @@ -34769,7 +34687,7 @@ ], "type": "object" }, - "AWS::EC2::VPC": { + "AWS::EC2::TransitGatewayRouteTable": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34801,33 +34719,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CidrBlock": { - "type": "string" - }, - "EnableDnsHostnames": { - "type": "boolean" - }, - "EnableDnsSupport": { - "type": "boolean" - }, - "InstanceTenancy": { - "type": "string" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TransitGatewayId": { + "type": "string" } }, "required": [ - "CidrBlock" + "TransitGatewayId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPC" + "AWS::EC2::TransitGatewayRouteTable" ], "type": "string" }, @@ -34846,7 +34755,7 @@ ], "type": "object" }, - "AWS::EC2::VPCCidrBlock": { + "AWS::EC2::TransitGatewayRouteTableAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34878,24 +34787,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean" - }, - "CidrBlock": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCCidrBlock" + "AWS::EC2::TransitGatewayRouteTableAssociation" ], "type": "string" }, @@ -34914,7 +34821,7 @@ ], "type": "object" }, - "AWS::EC2::VPCDHCPOptionsAssociation": { + "AWS::EC2::TransitGatewayRouteTablePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -34946,22 +34853,22 @@ "Properties": { "additionalProperties": false, "properties": { - "DhcpOptionsId": { + "TransitGatewayAttachmentId": { "type": "string" }, - "VpcId": { + "TransitGatewayRouteTableId": { "type": "string" } }, "required": [ - "DhcpOptionsId", - "VpcId" + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCDHCPOptionsAssociation" + "AWS::EC2::TransitGatewayRouteTablePropagation" ], "type": "string" }, @@ -34980,7 +34887,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpoint": { + "AWS::EC2::VPC": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35012,49 +34919,33 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "CidrBlock": { + "type": "string" }, - "PrivateDnsEnabled": { + "EnableDnsHostnames": { "type": "boolean" }, - "RouteTableIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" + "EnableDnsSupport": { + "type": "boolean" }, - "ServiceName": { + "InstanceTenancy": { "type": "string" }, - "SubnetIds": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" - }, - "VpcEndpointType": { - "type": "string" - }, - "VpcId": { - "type": "string" } }, "required": [ - "ServiceName", - "VpcId" + "CidrBlock" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpoint" + "AWS::EC2::VPC" ], "type": "string" }, @@ -35073,7 +34964,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpointConnectionNotification": { + "AWS::EC2::VPCCidrBlock": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35105,31 +34996,24 @@ "Properties": { "additionalProperties": false, "properties": { - "ConnectionEvents": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ConnectionNotificationArn": { - "type": "string" + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" }, - "ServiceId": { + "CidrBlock": { "type": "string" }, - "VPCEndpointId": { + "VpcId": { "type": "string" } }, "required": [ - "ConnectionEvents", - "ConnectionNotificationArn" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointConnectionNotification" + "AWS::EC2::VPCCidrBlock" ], "type": "string" }, @@ -35148,7 +35032,7 @@ ], "type": "object" }, - "AWS::EC2::VPCEndpointService": { + "AWS::EC2::VPCDHCPOptionsAssociation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35180,27 +35064,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AcceptanceRequired": { - "type": "boolean" - }, - "GatewayLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "DhcpOptionsId": { + "type": "string" }, - "NetworkLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" + "VpcId": { + "type": "string" } }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointService" + "AWS::EC2::VPCDHCPOptionsAssociation" ], "type": "string" }, @@ -35214,11 +35093,12 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::EC2::VPCEndpointServicePermissions": { + "AWS::EC2::VPCEndpoint": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35250,24 +35130,49 @@ "Properties": { "additionalProperties": false, "properties": { - "AllowedPrincipals": { + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { "items": { "type": "string" }, "type": "array" }, - "ServiceId": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { "type": "string" } }, "required": [ - "ServiceId" + "ServiceName", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCEndpointServicePermissions" + "AWS::EC2::VPCEndpoint" ], "type": "string" }, @@ -35286,7 +35191,7 @@ ], "type": "object" }, - "AWS::EC2::VPCGatewayAttachment": { + "AWS::EC2::VPCEndpointConnectionNotification": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35318,24 +35223,31 @@ "Properties": { "additionalProperties": false, "properties": { - "InternetGatewayId": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { "type": "string" }, - "VpcId": { + "ServiceId": { "type": "string" }, - "VpnGatewayId": { + "VPCEndpointId": { "type": "string" } }, "required": [ - "VpcId" + "ConnectionEvents", + "ConnectionNotificationArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCGatewayAttachment" + "AWS::EC2::VPCEndpointConnectionNotification" ], "type": "string" }, @@ -35354,7 +35266,7 @@ ], "type": "object" }, - "AWS::EC2::VPCPeeringConnection": { + "AWS::EC2::VPCEndpointService": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35386,37 +35298,27 @@ "Properties": { "additionalProperties": false, "properties": { - "PeerOwnerId": { - "type": "string" - }, - "PeerRegion": { - "type": "string" - }, - "PeerRoleArn": { - "type": "string" - }, - "PeerVpcId": { - "type": "string" + "AcceptanceRequired": { + "type": "boolean" }, - "Tags": { + "GatewayLoadBalancerArns": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "VpcId": { - "type": "string" + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "PeerVpcId", - "VpcId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPCPeeringConnection" + "AWS::EC2::VPCEndpointService" ], "type": "string" }, @@ -35430,12 +35332,11 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::EC2::VPNConnection": { + "AWS::EC2::VPCEndpointServicePermissions": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35467,43 +35368,24 @@ "Properties": { "additionalProperties": false, "properties": { - "CustomerGatewayId": { - "type": "string" - }, - "StaticRoutesOnly": { - "type": "boolean" - }, - "Tags": { + "AllowedPrincipals": { "items": { - "$ref": "#/definitions/Tag" + "type": "string" }, "type": "array" }, - "TransitGatewayId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "VpnGatewayId": { + "ServiceId": { "type": "string" - }, - "VpnTunnelOptionsSpecifications": { - "items": { - "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" - }, - "type": "array" } }, "required": [ - "CustomerGatewayId", - "Type" + "ServiceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnection" + "AWS::EC2::VPCEndpointServicePermissions" ], "type": "string" }, @@ -35522,19 +35404,7 @@ ], "type": "object" }, - "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { - "additionalProperties": false, - "properties": { - "PreSharedKey": { - "type": "string" - }, - "TunnelInsideCidr": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::EC2::VPNConnectionRoute": { + "AWS::EC2::VPCGatewayAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35566,22 +35436,24 @@ "Properties": { "additionalProperties": false, "properties": { - "DestinationCidrBlock": { + "InternetGatewayId": { "type": "string" }, - "VpnConnectionId": { + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { "type": "string" } }, "required": [ - "DestinationCidrBlock", - "VpnConnectionId" + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNConnectionRoute" + "AWS::EC2::VPCGatewayAttachment" ], "type": "string" }, @@ -35600,7 +35472,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGateway": { + "AWS::EC2::VPCPeeringConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35632,8 +35504,17 @@ "Properties": { "additionalProperties": false, "properties": { - "AmazonSideAsn": { - "type": "number" + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" }, "Tags": { "items": { @@ -35641,18 +35522,19 @@ }, "type": "array" }, - "Type": { + "VpcId": { "type": "string" } }, "required": [ - "Type" + "PeerVpcId", + "VpcId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGateway" + "AWS::EC2::VPCPeeringConnection" ], "type": "string" }, @@ -35671,7 +35553,7 @@ ], "type": "object" }, - "AWS::EC2::VPNGatewayRoutePropagation": { + "AWS::EC2::VPNConnection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35703,25 +35585,43 @@ "Properties": { "additionalProperties": false, "properties": { - "RouteTableIds": { + "CustomerGatewayId": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, "VpnGatewayId": { "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + }, + "type": "array" } }, "required": [ - "RouteTableIds", - "VpnGatewayId" + "CustomerGatewayId", + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VPNGatewayRoutePropagation" + "AWS::EC2::VPNConnection" ], "type": "string" }, @@ -35740,7 +35640,19 @@ ], "type": "object" }, - "AWS::EC2::Volume": { + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35772,54 +35684,22 @@ "Properties": { "additionalProperties": false, "properties": { - "AutoEnableIO": { - "type": "boolean" - }, - "AvailabilityZone": { - "type": "string" - }, - "Encrypted": { - "type": "boolean" - }, - "Iops": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - }, - "MultiAttachEnabled": { - "type": "boolean" - }, - "OutpostArn": { - "type": "string" - }, - "Size": { - "type": "number" - }, - "SnapshotId": { + "DestinationCidrBlock": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Throughput": { - "type": "number" - }, - "VolumeType": { + "VpnConnectionId": { "type": "string" } }, "required": [ - "AvailabilityZone" + "DestinationCidrBlock", + "VpnConnectionId" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::Volume" + "AWS::EC2::VPNConnectionRoute" ], "type": "string" }, @@ -35838,7 +35718,7 @@ ], "type": "object" }, - "AWS::EC2::VolumeAttachment": { + "AWS::EC2::VPNGateway": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35870,26 +35750,27 @@ "Properties": { "additionalProperties": false, "properties": { - "Device": { - "type": "string" + "AmazonSideAsn": { + "type": "number" }, - "InstanceId": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" }, - "VolumeId": { + "Type": { "type": "string" } }, "required": [ - "Device", - "InstanceId", - "VolumeId" + "Type" ], "type": "object" }, "Type": { "enum": [ - "AWS::EC2::VolumeAttachment" + "AWS::EC2::VPNGateway" ], "type": "string" }, @@ -35908,7 +35789,7 @@ ], "type": "object" }, - "AWS::ECR::PublicRepository": { + "AWS::EC2::VPNGatewayRoutePropagation": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -35940,21 +35821,25 @@ "Properties": { "additionalProperties": false, "properties": { - "RepositoryCatalogData": { - "type": "object" + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "RepositoryName": { + "VpnGatewayId": { "type": "string" - }, - "RepositoryPolicyText": { - "type": "object" } }, + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::PublicRepository" + "AWS::EC2::VPNGatewayRoutePropagation" ], "type": "string" }, @@ -35968,11 +35853,12 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ECR::RegistryPolicy": { + "AWS::EC2::Volume": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36004,18 +35890,54 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyText": { - "type": "object" + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Throughput": { + "type": "number" + }, + "VolumeType": { + "type": "string" } }, "required": [ - "PolicyText" + "AvailabilityZone" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::RegistryPolicy" + "AWS::EC2::Volume" ], "type": "string" }, @@ -36034,7 +35956,7 @@ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration": { + "AWS::EC2::VolumeAttachment": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -36066,18 +35988,26 @@ "Properties": { "additionalProperties": false, "properties": { - "ReplicationConfiguration": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" } }, "required": [ - "ReplicationConfiguration" + "Device", + "InstanceId", + "VolumeId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ECR::ReplicationConfiguration" + "AWS::EC2::VolumeAttachment" ], "type": "string" }, @@ -36096,53 +36026,247 @@ ], "type": "object" }, - "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" - }, - "type": "array" - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { - "additionalProperties": false, - "properties": { - "Region": { - "type": "string" - }, - "RegistryId": { - "type": "string" - } - }, - "required": [ - "Region", - "RegistryId" - ], - "type": "object" - }, - "AWS::ECR::ReplicationConfiguration.ReplicationRule": { - "additionalProperties": false, - "properties": { - "Destinations": { - "items": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" - }, - "type": "array" - } - }, - "required": [ - "Destinations" - ], - "type": "object" - }, - "AWS::ECR::Repository": { + "AWS::ECR::PublicRepository": { + "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": { + "RepositoryCatalogData": { + "type": "object" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryPolicyText": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::PublicRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::RegistryPolicy": { + "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": { + "PolicyText": { + "type": "object" + } + }, + "required": [ + "PolicyText" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::RegistryPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration": { + "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": { + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + } + }, + "required": [ + "ReplicationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::ReplicationConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "Region": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "required": [ + "Region", + "RegistryId" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationRule": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" + }, + "type": "array" + } + }, + "required": [ + "Destinations" + ], + "type": "object" + }, + "AWS::ECR::Repository": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -38092,6 +38216,87 @@ ], "type": "object" }, + "AWS::EKS::Addon": { + "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": { + "AddonName": { + "type": "string" + }, + "AddonVersion": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "ResolveConflicts": { + "type": "string" + }, + "ServiceAccountRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddonName", + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Addon" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EKS::Cluster": { "additionalProperties": false, "properties": { @@ -40020,6 +40225,186 @@ }, "type": "object" }, + "AWS::EMR::Studio": { + "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": { + "AuthMode": { + "type": "string" + }, + "DefaultS3Location": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineSecurityGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserRole": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "type": "string" + } + }, + "required": [ + "AuthMode", + "DefaultS3Location", + "EngineSecurityGroupId", + "Name", + "ServiceRole", + "SubnetIds", + "UserRole", + "VpcId", + "WorkspaceSecurityGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Studio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::StudioSessionMapping": { + "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": { + "IdentityName": { + "type": "string" + }, + "IdentityType": { + "type": "string" + }, + "SessionPolicyArn": { + "type": "string" + }, + "StudioId": { + "type": "string" + } + }, + "required": [ + "IdentityName", + "IdentityType", + "SessionPolicyArn", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::StudioSessionMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EMRContainers::VirtualCluster": { "additionalProperties": false, "properties": { @@ -43551,7 +43936,7 @@ ], "type": "object" }, - "AWS::Events::Archive": { + "AWS::Events::ApiDestination": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43583,30 +43968,35 @@ "Properties": { "additionalProperties": false, "properties": { - "ArchiveName": { + "ConnectionArn": { "type": "string" }, "Description": { "type": "string" }, - "EventPattern": { - "type": "object" + "HttpMethod": { + "type": "string" }, - "RetentionDays": { + "InvocationEndpoint": { + "type": "string" + }, + "InvocationRateLimitPerSecond": { "type": "number" }, - "SourceArn": { + "Name": { "type": "string" } }, "required": [ - "SourceArn" + "ConnectionArn", + "HttpMethod", + "InvocationEndpoint" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::Archive" + "AWS::Events::ApiDestination" ], "type": "string" }, @@ -43625,7 +44015,7 @@ ], "type": "object" }, - "AWS::Events::EventBus": { + "AWS::Events::Archive": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43657,21 +44047,30 @@ "Properties": { "additionalProperties": false, "properties": { - "EventSourceName": { + "ArchiveName": { "type": "string" }, - "Name": { + "Description": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "RetentionDays": { + "type": "number" + }, + "SourceArn": { "type": "string" } }, "required": [ - "Name" + "SourceArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBus" + "AWS::Events::Archive" ], "type": "string" }, @@ -43690,7 +44089,7 @@ ], "type": "object" }, - "AWS::Events::EventBusPolicy": { + "AWS::Events::Connection": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -43722,33 +44121,28 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + "AuthParameters": { + "type": "object" }, - "EventBusName": { + "AuthorizationType": { "type": "string" }, - "Principal": { + "Description": { "type": "string" }, - "Statement": { - "type": "object" - }, - "StatementId": { + "Name": { "type": "string" } }, "required": [ - "StatementId" + "AuthParameters", + "AuthorizationType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Events::EventBusPolicy" + "AWS::Events::Connection" ], "type": "string" }, @@ -43767,22 +44161,164 @@ ], "type": "object" }, - "AWS::Events::EventBusPolicy.Condition": { + "AWS::Events::EventBus": { "additionalProperties": false, "properties": { - "Key": { + "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": { + "EventSourceName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, "Type": { + "enum": [ + "AWS::Events::EventBus" + ], "type": "string" }, - "Value": { + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Events::Rule": { + "AWS::Events::EventBusPolicy": { + "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": { + "Action": { + "type": "string" + }, + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "EventBusName": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "Statement": { + "type": "object" + }, + "StatementId": { + "type": "string" + } + }, + "required": [ + "StatementId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::EventBusPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51334,6 +51870,86 @@ ], "type": "object" }, + "AWS::IAM::OIDCProvider": { + "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": { + "ClientIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThumbprintList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ThumbprintList" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::OIDCProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::Policy": { "additionalProperties": false, "properties": { @@ -51529,7 +52145,7 @@ ], "type": "object" }, - "AWS::IAM::ServiceLinkedRole": { + "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51561,24 +52177,27 @@ "Properties": { "additionalProperties": false, "properties": { - "AWSServiceName": { + "Name": { "type": "string" }, - "CustomSuffix": { + "SamlMetadataDocument": { "type": "string" }, - "Description": { - "type": "string" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "AWSServiceName" + "SamlMetadataDocument" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::ServiceLinkedRole" + "AWS::IAM::SAMLProvider" ], "type": "string" }, @@ -51597,7 +52216,7 @@ ], "type": "object" }, - "AWS::IAM::User": { + "AWS::IAM::ServerCertificate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51629,48 +52248,33 @@ "Properties": { "additionalProperties": false, "properties": { - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + "CertificateBody": { + "type": "string" }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" + "CertificateChain": { + "type": "string" }, "Path": { "type": "string" }, - "PermissionsBoundary": { + "PrivateKey": { "type": "string" }, - "Policies": { - "items": { - "$ref": "#/definitions/AWS::IAM::User.Policy" - }, - "type": "array" + "ServerCertificateName": { + "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UserName": { - "type": "string" } }, "type": "object" }, "Type": { "enum": [ - "AWS::IAM::User" + "AWS::IAM::ServerCertificate" ], "type": "string" }, @@ -51688,38 +52292,7 @@ ], "type": "object" }, - "AWS::IAM::User.LoginProfile": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "PasswordResetRequired": { - "type": "boolean" - } - }, - "required": [ - "Password" - ], - "type": "object" - }, - "AWS::IAM::User.Policy": { - "additionalProperties": false, - "properties": { - "PolicyDocument": { - "type": "object" - }, - "PolicyName": { - "type": "string" - } - }, - "required": [ - "PolicyDocument", - "PolicyName" - ], - "type": "object" - }, - "AWS::IAM::UserToGroupAddition": { + "AWS::IAM::ServiceLinkedRole": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -51751,25 +52324,24 @@ "Properties": { "additionalProperties": false, "properties": { - "GroupName": { + "AWSServiceName": { "type": "string" }, - "Users": { - "items": { - "type": "string" - }, - "type": "array" + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" } }, "required": [ - "GroupName", - "Users" + "AWSServiceName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IAM::UserToGroupAddition" + "AWS::IAM::ServiceLinkedRole" ], "type": "string" }, @@ -51788,7 +52360,275 @@ ], "type": "object" }, - "AWS::IVS::Channel": { + "AWS::IAM::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": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::User.LoginProfile": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "PasswordResetRequired": { + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "AWS::IAM::User.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::UserToGroupAddition": { + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GroupName", + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::VirtualMFADevice": { + "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": { + "Path": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VirtualMfaDeviceName": { + "type": "string" + } + }, + "required": [ + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::VirtualMFADevice" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53286,6 +54126,160 @@ }, "type": "object" }, + "AWS::IoT::AccountAuditConfiguration": { + "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": { + "AccountId": { + "type": "string" + }, + "AuditCheckConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" + }, + "AuditNotificationTargetConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "AuditCheckConfigurations", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::AccountAuditConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": { + "additionalProperties": false, + "properties": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "ConflictingClientIdsCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateSharedCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotPolicyOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasAllowsAccessToUnusedServicesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "LoggingDisabledCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedCaCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedDeviceCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": { + "additionalProperties": false, + "properties": { + "Sns": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" + } + }, + "type": "object" + }, "AWS::IoT::Authorizer": { "additionalProperties": false, "properties": { @@ -53449,6 +54443,158 @@ ], "type": "object" }, + "AWS::IoT::CustomMetric": { + "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": { + "DisplayName": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "MetricType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MetricType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::CustomMetric" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::Dimension": { + "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": { + "Name": { + "type": "string" + }, + "StringValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "StringValues", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Dimension" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::DomainConfiguration": { "additionalProperties": false, "properties": { @@ -53561,6 +54707,187 @@ }, "type": "object" }, + "AWS::IoT::MitigationAction": { + "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": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, "AWS::IoT::Policy": { "additionalProperties": false, "properties": { @@ -53593,21 +54920,171 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::PolicyPrincipalAttachment": { + "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": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ProvisioningTemplate": { + "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" }, - "PolicyName": { + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { "type": "string" } }, "required": [ - "PolicyDocument" + "ProvisioningRoleArn", + "TemplateBody" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::Policy" + "AWS::IoT::ProvisioningTemplate" ], "type": "string" }, @@ -53626,7 +55103,19 @@ ], "type": "object" }, - "AWS::IoT::PolicyPrincipalAttachment": { + "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53658,22 +55147,40 @@ "Properties": { "additionalProperties": false, "properties": { - "PolicyName": { + "DayOfMonth": { "type": "string" }, - "Principal": { + "DayOfWeek": { + "type": "string" + }, + "Frequency": { + "type": "string" + }, + "ScheduledAuditName": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetCheckNames": { + "items": { + "type": "string" + }, + "type": "array" } }, "required": [ - "PolicyName", - "Principal" + "Frequency", + "TargetCheckNames" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::PolicyPrincipalAttachment" + "AWS::IoT::ScheduledAudit" ], "type": "string" }, @@ -53692,7 +55199,7 @@ ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate": { + "AWS::IoT::SecurityProfile": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -53724,16 +55231,31 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" + "AdditionalMetricsToRetainV2": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "AlertTargets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" + } + }, + "type": "object" }, - "PreProvisioningHook": { - "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + "Behaviors": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" + }, + "type": "array" }, - "ProvisioningRoleArn": { + "SecurityProfileDescription": { + "type": "string" + }, + "SecurityProfileName": { "type": "string" }, "Tags": { @@ -53742,22 +55264,18 @@ }, "type": "array" }, - "TemplateBody": { - "type": "string" - }, - "TemplateName": { - "type": "string" + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array" } }, - "required": [ - "ProvisioningRoleArn", - "TemplateBody" - ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::ProvisioningTemplate" + "AWS::IoT::SecurityProfile" ], "type": "string" }, @@ -53771,18 +55289,156 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "AWS::IoT::SecurityProfile.AlertTarget": { "additionalProperties": false, "properties": { - "PayloadVersion": { + "AlertTargetArn": { "type": "string" }, - "TargetArn": { + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AlertTargetArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.Behavior": { + "additionalProperties": false, + "properties": { + "Criteria": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria" + }, + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + }, + "Name": { + "type": "string" + }, + "SuppressAlerts": { + "type": "boolean" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.BehaviorCriteria": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "ConsecutiveDatapointsToAlarm": { + "type": "number" + }, + "ConsecutiveDatapointsToClear": { + "type": "number" + }, + "DurationSeconds": { + "type": "number" + }, + "MlDetectionConfig": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" + }, + "StatisticalThreshold": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": { + "additionalProperties": false, + "properties": { + "ConfidenceLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricDimension": { + "additionalProperties": false, + "properties": { + "DimensionName": { + "type": "string" + }, + "Operator": { + "type": "string" + } + }, + "required": [ + "DimensionName" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricToRetain": { + "additionalProperties": false, + "properties": { + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + } + }, + "required": [ + "Metric" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricValue": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Count": { + "type": "string" + }, + "Number": { + "type": "number" + }, + "Numbers": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Strings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.StatisticalThreshold": { + "additionalProperties": false, + "properties": { + "Statistic": { "type": "string" } }, @@ -56322,6 +57978,12 @@ "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity": { "additionalProperties": false, "properties": { + "IamRole": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole" + }, + "IamUser": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser" + }, "User": { "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User" } @@ -56340,6 +58002,24 @@ }, "type": "object" }, + "AWS::IoTSiteWise::AccessPolicy.IamRole": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamUser": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoTSiteWise::AccessPolicy.Portal": { "additionalProperties": false, "properties": { @@ -56517,6 +58197,12 @@ "Properties": { "additionalProperties": false, "properties": { + "AssetModelCompositeModels": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" + }, + "type": "array" + }, "AssetModelDescription": { "type": "string" }, @@ -56568,6 +58254,31 @@ ], "type": "object" }, + "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel": { + "additionalProperties": false, + "properties": { + "CompositeModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { "additionalProperties": false, "properties": { @@ -56594,6 +58305,9 @@ "DataType": { "type": "string" }, + "DataTypeSpec": { + "type": "string" + }, "LogicalId": { "type": "string" }, @@ -56967,6 +58681,9 @@ "Properties": { "additionalProperties": false, "properties": { + "PortalAuthMode": { + "type": "string" + }, "PortalContactEmail": { "type": "string" }, @@ -57014,33 +58731,6 @@ ], "type": "object" }, - "AWS::IoTSiteWise::Portal.MonitorErrorDetails": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::IoTSiteWise::Portal.PortalStatus": { - "additionalProperties": false, - "properties": { - "error": { - "$ref": "#/definitions/AWS::IoTSiteWise::Portal.MonitorErrorDetails" - }, - "state": { - "type": "string" - } - }, - "required": [ - "state" - ], - "type": "object" - }, "AWS::IoTSiteWise::Project": { "additionalProperties": false, "properties": { @@ -69130,36 +70820,6 @@ ], "type": "object" }, - "AWS::MediaPackage::Channel.HlsIngest": { - "additionalProperties": false, - "properties": { - "ingestEndpoints": { - "items": { - "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::MediaPackage::Channel.IngestEndpoint": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Password": { - "type": "string" - }, - "Url": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint": { "additionalProperties": false, "properties": { @@ -74203,6 +75863,9 @@ "Body": { "type": "string" }, + "EntityId": { + "type": "string" + }, "MessageType": { "type": "string" }, @@ -74211,6 +75874,9 @@ }, "SenderId": { "type": "string" + }, + "TemplateId": { + "type": "string" } }, "type": "object" @@ -76395,18 +78061,6 @@ }, "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DashboardPublishOptions": { "additionalProperties": false, "properties": { @@ -76450,51 +78104,6 @@ ], "type": "object" }, - "AWS::QuickSight::Dashboard.DashboardVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "CreatedTime": { - "type": "string" - }, - "DataSetArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.DataSetReference": { "additionalProperties": false, "properties": { @@ -76626,18 +78235,6 @@ ], "type": "object" }, - "AWS::QuickSight::Dashboard.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Dashboard.SheetControlsOption": { "additionalProperties": false, "properties": { @@ -76753,63 +78350,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.ColumnGroupColumnSchema": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnGroupSchema": { - "additionalProperties": false, - "properties": { - "ColumnGroupColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupColumnSchema" - }, - "type": "array" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.ColumnSchema": { - "additionalProperties": false, - "properties": { - "DataType": { - "type": "string" - }, - "GeographicRole": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.DataSetConfiguration": { - "additionalProperties": false, - "properties": { - "ColumnGroupSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupSchema" - }, - "type": "array" - }, - "DataSetSchema": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetSchema" - }, - "Placeholder": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.DataSetReference": { "additionalProperties": false, "properties": { @@ -76826,18 +78366,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.DataSetSchema": { - "additionalProperties": false, - "properties": { - "ColumnSchemaList": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.ColumnSchema" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.ResourcePermission": { "additionalProperties": false, "properties": { @@ -76857,30 +78385,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.Sheet": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "SheetId": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Template.TemplateError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, "AWS::QuickSight::Template.TemplateSourceAnalysis": { "additionalProperties": false, "properties": { @@ -76924,48 +78428,6 @@ ], "type": "object" }, - "AWS::QuickSight::Template.TemplateVersion": { - "additionalProperties": false, - "properties": { - "CreatedTime": { - "type": "string" - }, - "DataSetConfigurations": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.DataSetConfiguration" - }, - "type": "array" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateError" - }, - "type": "array" - }, - "Sheets": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Template.Sheet" - }, - "type": "array" - }, - "SourceEntityArn": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "ThemeArn": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme": { "additionalProperties": false, "properties": { @@ -77162,51 +78624,6 @@ }, "type": "object" }, - "AWS::QuickSight::Theme.ThemeError": { - "additionalProperties": false, - "properties": { - "Message": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::QuickSight::Theme.ThemeVersion": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "BaseThemeId": { - "type": "string" - }, - "Configuration": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" - }, - "CreatedTime": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Errors": { - "items": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeError" - }, - "type": "array" - }, - "Status": { - "type": "string" - }, - "VersionNumber": { - "type": "number" - } - }, - "type": "object" - }, "AWS::QuickSight::Theme.TileLayoutStyle": { "additionalProperties": false, "properties": { @@ -82301,24 +83718,555 @@ "Properties": { "additionalProperties": false, "properties": { - "StorageLensConfiguration": { - "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "required": [ + "S3BucketDestination" + ], + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint": { + "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": { + "Bucket": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration" + } + }, + "required": [ + "Bucket", + "Name", + "VpcConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::Bucket": { + "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": { + "BucketName": { + "type": "string" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration" + }, + "OutpostId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BucketName", + "OutpostId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "properties": { + "DaysAfterInitiation": { + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "type": "string" + }, + "ExpirationInDays": { + "type": "number" + }, + "Filter": { + "type": "object" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::BucketPolicy": { + "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": { + "Bucket": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "Bucket", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::BucketPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Endpoint": { + "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": { + "OutpostId": { + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "SecurityGroupId": { + "type": "string" + }, + "SubnetId": { + "type": "string" } }, "required": [ - "StorageLensConfiguration" + "OutpostId", + "SecurityGroupId", + "SubnetId" ], "type": "object" }, "Type": { "enum": [ - "AWS::S3::StorageLens" + "AWS::S3Outposts::Endpoint" ], "type": "string" }, @@ -82337,190 +84285,15 @@ ], "type": "object" }, - "AWS::S3::StorageLens.AccountLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "BucketLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" - } - }, - "required": [ - "BucketLevel" - ], - "type": "object" - }, - "AWS::S3::StorageLens.ActivityMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.AwsOrg": { - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - } - }, - "required": [ - "Arn" - ], - "type": "object" - }, - "AWS::S3::StorageLens.BucketLevel": { - "additionalProperties": false, - "properties": { - "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" - }, - "PrefixLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.BucketsAndRegions": { - "additionalProperties": false, - "properties": { - "Buckets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Regions": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.DataExport": { - "additionalProperties": false, - "properties": { - "S3BucketDestination": { - "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" - } - }, - "required": [ - "S3BucketDestination" - ], - "type": "object" - }, - "AWS::S3::StorageLens.Encryption": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevel": { - "additionalProperties": false, - "properties": { - "StorageMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" - } - }, - "required": [ - "StorageMetrics" - ], - "type": "object" - }, - "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { - "additionalProperties": false, - "properties": { - "IsEnabled": { - "type": "boolean" - }, - "SelectionCriteria": { - "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.S3BucketDestination": { - "additionalProperties": false, - "properties": { - "AccountId": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "Encryption": { - "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" - }, - "Format": { - "type": "string" - }, - "OutputSchemaVersion": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "AccountId", - "Arn", - "Format", - "OutputSchemaVersion" - ], - "type": "object" - }, - "AWS::S3::StorageLens.SelectionCriteria": { - "additionalProperties": false, - "properties": { - "Delimiter": { - "type": "string" - }, - "MaxDepth": { - "type": "number" - }, - "MinStorageBytesPercentage": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::S3::StorageLens.StorageLensConfiguration": { + "AWS::S3Outposts::Endpoint.NetworkInterface": { "additionalProperties": false, "properties": { - "AccountLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" - }, - "AwsOrg": { - "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" - }, - "DataExport": { - "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" - }, - "Exclude": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "Id": { - "type": "string" - }, - "Include": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" - }, - "IsEnabled": { - "type": "boolean" - }, - "StorageLensArn": { + "NetworkInterfaceId": { "type": "string" } }, "required": [ - "AccountLevel", - "Id", - "IsEnabled" + "NetworkInterfaceId" ], "type": "object" }, @@ -86310,21 +88083,206 @@ "Properties": { "additionalProperties": false, "properties": { - "DataCaptureConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" - }, - "EndpointConfigName": { + "DataCaptureConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" + }, + "EndpointConfigName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "ProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProductionVariants" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::EndpointConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { + "additionalProperties": false, + "properties": { + "CsvContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JsonContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureOption": { + "additionalProperties": false, + "properties": { + "CaptureMode": { + "type": "string" + } + }, + "required": [ + "CaptureMode" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { + "additionalProperties": false, + "properties": { + "CaptureContentTypeHeader": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" + }, + "CaptureOptions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" + }, + "type": "array" + }, + "DestinationS3Uri": { + "type": "string" + }, + "EnableCapture": { + "type": "boolean" + }, + "InitialSamplingPercentage": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CaptureOptions", + "DestinationS3Uri", + "InitialSamplingPercentage" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "additionalProperties": false, + "properties": { + "AcceleratorType": { + "type": "string" + }, + "InitialInstanceCount": { + "type": "number" + }, + "InitialVariantWeight": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ModelName": { + "type": "string" + }, + "VariantName": { + "type": "string" + } + }, + "required": [ + "InitialInstanceCount", + "InitialVariantWeight", + "InstanceType", + "ModelName", + "VariantName" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup": { + "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" }, - "KmsKeyId": { + "EventTimeFeatureName": { "type": "string" }, - "ProductionVariants": { + "FeatureDefinitions": { "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" }, "type": "array" }, + "FeatureGroupName": { + "type": "string" + }, + "OfflineStoreConfig": { + "type": "object" + }, + "OnlineStoreConfig": { + "type": "object" + }, + "RecordIdentifierFeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -86333,13 +88291,16 @@ } }, "required": [ - "ProductionVariants" + "EventTimeFeatureName", + "FeatureDefinitions", + "FeatureGroupName", + "RecordIdentifierFeatureName" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::EndpointConfig" + "AWS::SageMaker::FeatureGroup" ], "type": "string" }, @@ -86358,100 +88319,23 @@ ], "type": "object" }, - "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { - "additionalProperties": false, - "properties": { - "CsvContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "JsonContentTypes": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.CaptureOption": { - "additionalProperties": false, - "properties": { - "CaptureMode": { - "type": "string" - } - }, - "required": [ - "CaptureMode" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { - "additionalProperties": false, - "properties": { - "CaptureContentTypeHeader": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" - }, - "CaptureOptions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" - }, - "type": "array" - }, - "DestinationS3Uri": { - "type": "string" - }, - "EnableCapture": { - "type": "boolean" - }, - "InitialSamplingPercentage": { - "type": "number" - }, - "KmsKeyId": { - "type": "string" - } - }, - "required": [ - "CaptureOptions", - "DestinationS3Uri", - "InitialSamplingPercentage" - ], - "type": "object" - }, - "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "AWS::SageMaker::FeatureGroup.FeatureDefinition": { "additionalProperties": false, "properties": { - "AcceleratorType": { - "type": "string" - }, - "InitialInstanceCount": { - "type": "number" - }, - "InitialVariantWeight": { - "type": "number" - }, - "InstanceType": { - "type": "string" - }, - "ModelName": { + "FeatureName": { "type": "string" }, - "VariantName": { + "FeatureType": { "type": "string" } }, "required": [ - "InitialInstanceCount", - "InitialVariantWeight", - "InstanceType", - "ModelName", - "VariantName" + "FeatureName", + "FeatureType" ], "type": "object" }, - "AWS::SageMaker::FeatureGroup": { + "AWS::SageMaker::Image": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86483,31 +88367,16 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ImageDescription": { "type": "string" }, - "EventTimeFeatureName": { + "ImageDisplayName": { "type": "string" }, - "FeatureDefinitions": { - "items": { - "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" - }, - "type": "array" - }, - "FeatureGroupName": { + "ImageName": { "type": "string" }, - "OfflineStoreConfig": { - "type": "object" - }, - "OnlineStoreConfig": { - "type": "object" - }, - "RecordIdentifierFeatureName": { - "type": "string" - }, - "RoleArn": { + "ImageRoleArn": { "type": "string" }, "Tags": { @@ -86518,16 +88387,14 @@ } }, "required": [ - "EventTimeFeatureName", - "FeatureDefinitions", - "FeatureGroupName", - "RecordIdentifierFeatureName" + "ImageName", + "ImageRoleArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::SageMaker::FeatureGroup" + "AWS::SageMaker::Image" ], "type": "string" }, @@ -86546,19 +88413,69 @@ ], "type": "object" }, - "AWS::SageMaker::FeatureGroup.FeatureDefinition": { + "AWS::SageMaker::ImageVersion": { "additionalProperties": false, "properties": { - "FeatureName": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "FeatureType": { + "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": { + "BaseImage": { + "type": "string" + }, + "ImageName": { + "type": "string" + } + }, + "required": [ + "BaseImage", + "ImageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ImageVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "FeatureName", - "FeatureType" + "Type", + "Properties" ], "type": "object" }, @@ -86606,6 +88523,9 @@ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -86690,6 +88610,18 @@ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -89117,6 +91049,12 @@ "Name": { "type": "string" }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/AWS::SecretsManager::Secret.ReplicaRegion" + }, + "type": "array" + }, "SecretString": { "type": "string" }, @@ -89185,6 +91123,21 @@ }, "type": "object" }, + "AWS::SecretsManager::Secret.ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, "AWS::SecretsManager::SecretTargetAttachment": { "additionalProperties": false, "properties": { @@ -93767,6 +95720,9 @@ "type": "string" } }, + "required": [ + "Handler" + ], "type": "object" }, "AWS::Synthetics::Canary.RunConfig": { @@ -93791,9 +95747,6 @@ "type": "number" } }, - "required": [ - "TimeoutInSeconds" - ], "type": "object" }, "AWS::Synthetics::Canary.Schedule": { @@ -98739,6 +100692,9 @@ { "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment" }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect" + }, { "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain" }, @@ -98847,6 +100803,9 @@ { "$ref": "#/definitions/AWS::EFS::MountTarget" }, + { + "$ref": "#/definitions/AWS::EKS::Addon" + }, { "$ref": "#/definitions/AWS::EKS::Cluster" }, @@ -98871,6 +100830,12 @@ { "$ref": "#/definitions/AWS::EMR::Step" }, + { + "$ref": "#/definitions/AWS::EMR::Studio" + }, + { + "$ref": "#/definitions/AWS::EMR::StudioSessionMapping" + }, { "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster" }, @@ -98946,9 +100911,15 @@ { "$ref": "#/definitions/AWS::EventSchemas::Schema" }, + { + "$ref": "#/definitions/AWS::Events::ApiDestination" + }, { "$ref": "#/definitions/AWS::Events::Archive" }, + { + "$ref": "#/definitions/AWS::Events::Connection" + }, { "$ref": "#/definitions/AWS::Events::EventBus" }, @@ -99132,12 +101103,21 @@ { "$ref": "#/definitions/AWS::IAM::ManagedPolicy" }, + { + "$ref": "#/definitions/AWS::IAM::OIDCProvider" + }, { "$ref": "#/definitions/AWS::IAM::Policy" }, { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::SAMLProvider" + }, + { + "$ref": "#/definitions/AWS::IAM::ServerCertificate" + }, { "$ref": "#/definitions/AWS::IAM::ServiceLinkedRole" }, @@ -99147,6 +101127,9 @@ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IAM::VirtualMFADevice" + }, { "$ref": "#/definitions/AWS::IVS::Channel" }, @@ -99195,15 +101178,27 @@ { "$ref": "#/definitions/AWS::IoT1Click::Project" }, + { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration" + }, { "$ref": "#/definitions/AWS::IoT::Authorizer" }, { "$ref": "#/definitions/AWS::IoT::Certificate" }, + { + "$ref": "#/definitions/AWS::IoT::CustomMetric" + }, + { + "$ref": "#/definitions/AWS::IoT::Dimension" + }, { "$ref": "#/definitions/AWS::IoT::DomainConfiguration" }, + { + "$ref": "#/definitions/AWS::IoT::MitigationAction" + }, { "$ref": "#/definitions/AWS::IoT::Policy" }, @@ -99213,6 +101208,12 @@ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ScheduledAudit" + }, + { + "$ref": "#/definitions/AWS::IoT::SecurityProfile" + }, { "$ref": "#/definitions/AWS::IoT::Thing" }, @@ -99738,6 +101739,18 @@ { "$ref": "#/definitions/AWS::S3::StorageLens" }, + { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Bucket" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::BucketPolicy" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Endpoint" + }, { "$ref": "#/definitions/AWS::SDB::Domain" }, @@ -99837,6 +101850,12 @@ { "$ref": "#/definitions/AWS::SageMaker::FeatureGroup" }, + { + "$ref": "#/definitions/AWS::SageMaker::Image" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ImageVersion" + }, { "$ref": "#/definitions/AWS::SageMaker::Model" },