diff --git a/docs/rules.md b/docs/rules.md
index 701b5e5c2b..5595aafce3 100644
--- a/docs/rules.md
+++ b/docs/rules.md
@@ -46,7 +46,7 @@ To include these rules, use the `-e/include-experimental` argument when running
## Rules
(_This documentation is generated by running `cfn-lint --update-documentation`, do not alter this manually_)
-The following **223** rules are applied by this linter:
+The following **225** rules are applied by this linter:
| Rule ID | Title | Description | Config
(Name:Type:Default) | Source | Tags |
| -------- | ----- | ----------- | ---------- | ------ | ---- |
@@ -145,6 +145,7 @@ The following **223** rules are applied by this linter:
| [E3046](../src/cfnlint/rules/resources/ecs/LogConfiguration.py) | Validate ECS task logging configuration for awslogs | When 'awslogs' the options 'awslogs-group' and 'awslogs-region' are required | | [Source]() | `resources` |
| [E3047](../src/cfnlint/rules/resources/ecs/FargateCpuMemory.py) | Validate ECS Fargate tasks have the right combination of CPU and memory | When using a ECS Fargate task there is a specfic combination of memory and cpu that can be used | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory) | `properties`,`ecs`,`service`,`container`,`fargate` |
| [E3048](../src/cfnlint/rules/resources/ecs/TaskFargateProperties.py) | Validate ECS Fargate tasks have required properties and values | When using a ECS Fargate task there is a specfic combination of required properties and values | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory) | `properties`,`ecs`,`service`,`container`,`fargate` |
+| [E3049](../src/cfnlint/rules/resources/ecs/ServiceDynamicPorts.py) | Validate ECS tasks with dynamic host port have traffic-port ELB target groups | When using an ECS task definition of host port 0 and associating that container to an ELB the target group has to have a 'HealthCheckPort' of 'traffic-port' | | [Source]() | `resources` |
| [E3050](../src/cfnlint/rules/resources/iam/RefWithPath.py) | Check if REFing to a IAM resource with path set | Some resources don't support looking up the IAM resource by name. This check validates when a REF is being used and the Path is not '/' | | [Source](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) | `properties`,`iam` |
| [E3051](../src/cfnlint/rules/resources/ssm/Document.py) | Validate the structure of a SSM document | SSM documents are nested JSON/YAML in CloudFormation this rule adds validation to those documents | | [Source](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) | `properties`,`ssm`,`document` |
| [E3503](../src/cfnlint/rules/resources/certificatemanager/DomainValidationOptions.py) | ValidationDomain is superdomain of DomainName | In ValidationDomainOptions, the ValidationDomain must be a superdomain of the DomainName being validated | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-validationdomain) | `certificate`,`certificatemanager`,`domainvalidationoptions`,`validationdomain` |
@@ -175,6 +176,7 @@ The following **223** rules are applied by this linter:
| [E3670](../src/cfnlint/rules/resources/amazonmq/BrokerInstanceTypeEnum.py) | Validate the instance types for an AmazonMQ Broker | Validates the instance types for AmazonMQ broker based on region and data gathered from the pricing APIs | | [Source]() | `resources` |
| [E3671](../src/cfnlint/rules/resources/ectwo/Ebs.py) | Validate block device mapping configuration | Certain volume types require Iops to be specified | | [Source]() | `resources`,`ec2` |
| [E3672](../src/cfnlint/rules/resources/dax/ClusterNodeTypeEnum.py) | Validate the cluster node type for a DAX Cluster | Validates the DAX cluster instance types based on region and data gathered from the pricing APIs | | [Source]() | `resources` |
+| [E3673](../src/cfnlint/rules/resources/ectwo/InstanceImageId.py) | Validate if an ImageId is required | Validate if an ImageID is required. It can be required if the associated LaunchTemplate doesn't specify an ImageID | | [Source]() | `resources`,`ec2` |
| [E3675](../src/cfnlint/rules/resources/emr/ClusterInstanceTypeConfigInstanceTypeEnum.py) | Validate EMR cluster instance type | Validates the EMR cluster instance types based on region and data gathered from the pricing APIs | | [Source]() | `resources` |
| [E3676](../src/cfnlint/rules/resources/elasticloadbalancingv2/ListenerCertificate.py) | Validate ELBv2 protocols that require certificates have a certificate specified | When using HTTP or TLS you must specify a certificate | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-certificates) | `resources` |
| [E3677](../src/cfnlint/rules/resources/lmbd/FunctionZipfileRuntimeEnum.py) | Validate Lambda using ZipFile requires an allowable runtime | Using the ZipFile attribute requires a javascript or python runtime to be specified | | [Source]() | `resources` |
diff --git a/src/cfnlint/data/AdditionalSpecs/Policies.json b/src/cfnlint/data/AdditionalSpecs/Policies.json
index 81312adb70..15530480f0 100644
--- a/src/cfnlint/data/AdditionalSpecs/Policies.json
+++ b/src/cfnlint/data/AdditionalSpecs/Policies.json
@@ -2976,6 +2976,7 @@
"AWS Customer Verification Service": {
"Actions": [
"CreateCustomerVerificationDetails",
+ "CreateUploadUrls",
"GetCustomerVerificationDetails",
"GetCustomerVerificationEligibility",
"UpdateCustomerVerificationDetails"
diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json
index e294e05fb4..91f5a97a07 100644
--- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json
@@ -1 +1 @@
-{"etag": "\"85b56752f0864a6fd189c613a0e47255\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"f6424cade6bd6875e053b3223c49aed1\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json
index 871e4caa60..25c8d02ca0 100644
--- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json
@@ -1 +1 @@
-{"etag": "\"b19fcd32eff148223b62a4148953b119\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"}
+{"etag": "\"d233f95cd70c7032ce4fcb19adfe50a9\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json
index b239a91b98..6bf83b62ef 100644
--- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json
@@ -1 +1 @@
-{"etag": "\"061fcc4e5d7d49475ef727f277446802\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"31b76704eee77427deb2e389d4a7b581\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json
index e40bf18419..68bb0ad95a 100644
--- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json
@@ -1 +1 @@
-{"etag": "\"1eea87765e05e4fe0c54eae867b64baf\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"8dff20f2547b17614c0ca8c0737ef4aa\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json
index 657dfeaf87..1570ccf03c 100644
--- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json
@@ -1 +1 @@
-{"etag": "\"3571e7b68e8593f542e96b1fe9b56043\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"db2bc2a541e13b79a2ddd49deb5c76ef\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json
index 8d2abfc246..21f5cc5c69 100644
--- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json
@@ -1 +1 @@
-{"etag": "\"0fe3ad340ccb03c06292363e84dd5246\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"13b41df282b15a6af967a453c4c3772b\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json
index 8f3f758396..0acb97e520 100644
--- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json
@@ -1 +1 @@
-{"etag": "\"2e59ca52e0b29b76304f8aac77631d2a\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"4214689261ae3f519fe439da29663950\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
index 3c0951c093..cc38cb1224 100644
--- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
@@ -1 +1 @@
-{"etag": "\"09adaeca3c99a11e03d10ae01d6b1362\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"}
+{"etag": "\"6790e073cf0243d7ea9af62a15173f1b\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
index 4bdb72a25c..b376387163 100644
--- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
@@ -1 +1 @@
-{"etag": "\"dc24a194340be9e0c96baac963c8129e\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"315af9d9ac7057d355d964206c0edc07\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json
index 19505b6611..ddab5bcff9 100644
--- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json
@@ -1 +1 @@
-{"etag": "\"5f15349b97c3abf5883e58376652acff\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"4242d8d004fcad5d707e66bead5b3c7c\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json
index 65f4f6cc21..1d8a4d7878 100644
--- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json
@@ -1 +1 @@
-{"etag": "\"733b9e73705a7cdef42ad28e7e5aed05\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"1d59d59618edbf94a39715c366b07aab\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json
index 9a981f9e8d..7fc0adddeb 100644
--- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json
@@ -1 +1 @@
-{"etag": "\"5caa311a2432099f815a8578e08ddd65\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"ec50fb189b7930d3d5ab9229b4885fc8\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json
index f13a955cdd..6c03c03fb2 100644
--- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json
@@ -1 +1 @@
-{"etag": "\"85a5a687a0eb9fc8b1de1c1038210408\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"3f39076888a9f110f8b1575ecd8b80f7\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json
index 999605e13b..8eab2b3965 100644
--- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json
@@ -1 +1 @@
-{"etag": "\"4c7d6ce1da2d6f269637862184c4f1ec\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"017e36b0412c60eb79c860c77aedede8\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json
index 08e003d816..081624294d 100644
--- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json
@@ -1 +1 @@
-{"etag": "\"2ece9b6761f65207a718209f0a3292dc\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"ea66e0e4d7a7aa49da215f00ce3a6a5d\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
index 2a64d418ef..428badec81 100644
--- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
@@ -1 +1 @@
-{"etag": "\"5625f354ee10e3d7a0ecc856b1c14995\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"65e29961bf999f93d0c1f0625551502a\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json
index ec5a1871d9..9ffff4207d 100644
--- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json
@@ -1 +1 @@
-{"etag": "\"32c817af301205e3593329ed9afdf5e7\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a90c8fd480017948cb61a5a9128d7629\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json
index 920eb09d2c..0e57eab4dc 100644
--- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json
@@ -1 +1 @@
-{"etag": "\"1ecbe028dc219b57affb8779e23c43bd\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"9f3180dc3c31a517efe74bc506ee0866\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
index 1858a46cfb..62b499efea 100644
--- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
@@ -1 +1 @@
-{"etag": "\"0b3eb52c783248db6d6662c7a595426e\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a015375b2ea44f361e74cdebf76fa32f\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
index e7cbf9f58d..24e9fac72b 100644
--- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
@@ -1 +1 @@
-{"etag": "\"707e5da477848d380366e54cb284fa03\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"e1fa083b7a43b20206695178368e9127\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json
index 741115e473..5bebbf05be 100644
--- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json
@@ -1 +1 @@
-{"etag": "\"44c5f3dddd70045c86f404818d37ed52\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"32ad94e2e9c662c3d3531a4a7fa45f3c\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json
index 791be06335..23085fce3f 100644
--- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json
@@ -1 +1 @@
-{"etag": "\"aa5e348b4f7132e252e9bd49c07b4ace\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"5ca181c2dc03797dbacc2f4d10e57a87\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json
index f4f74505da..b41d5621c0 100644
--- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json
@@ -1 +1 @@
-{"etag": "\"6dfebdf907165e623ac7c6ae78f69e89\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"9c8f8a7925cdf4254b626ca87bc3f712\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
index a21789cef9..2c921b2406 100644
--- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
@@ -1 +1 @@
-{"etag": "\"1d5fccf6e137b998472b6b1b8b6b87b5\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"778518d6523c8b730b73b2deb2b5fc16\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json
index dfa279dc22..3e07644a63 100644
--- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json
@@ -1 +1 @@
-{"etag": "\"6e633bde703434351ccd10984b6f089a\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a776927e048fa2f69212e32ac09d4daa\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json
index ed2f4a5e2b..eca466c414 100644
--- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json
@@ -1 +1 @@
-{"etag": "\"5f7f32e25bbcdf5f21fcf0254ff962ff\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"7358cc4367969670914be54b712a91de\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json
index ed90380c8a..1d8dbdf629 100644
--- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json
@@ -1 +1 @@
-{"etag": "\"6192f56c4aa13f235ff9c99caaf673dd\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"cdaf164fb6f371c5c8cced530ad17c26\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json
index 4b269f7b44..f13687ec40 100644
--- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json
@@ -1 +1 @@
-{"etag": "\"ec483e0222a4f80be7a780038e2071e4\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"790acf350bf1791bffa958bbbdd0a2b6\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json
index e95ba9792f..33b013c7c0 100644
--- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json
@@ -1 +1 @@
-{"etag": "\"009bc4e7f3fb6dbd5ef6cb62517d9493\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"b051c03bd63b339f49e15d71cd4e3981\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json
index 337dcdefd7..9314026de0 100644
--- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json
@@ -1 +1 @@
-{"etag": "\"bf4182d4a20d8f80f97810b06ca54597\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"0ef7eed995a8f8bf1861c81df3a407ec\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
index eeb5a3ddb6..a3e0a7217b 100644
--- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
@@ -1 +1 @@
-{"etag": "\"4bb1fc4b0d494484ae64308fbc3bbbcf\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"292a6e970989168ceee58a72611bed76\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
index 3f1da0f2d5..1df46708f8 100644
--- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
@@ -1 +1 @@
-{"etag": "\"1aa4602885a3fe30635853261c6e42c6\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"581aee2ca97cf76fca8d8cc6e1e85e09\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json
index 0e9aa30814..fe304f97b4 100644
--- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json
@@ -1 +1 @@
-{"etag": "\"efadb871cc9184c747a8a532df781be6\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a85e1c596370749f2b9129646aa9f7a4\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/Serverless/ManagedPolicies.json b/src/cfnlint/data/Serverless/ManagedPolicies.json
index 48100fb15a..b0314147b6 100644
--- a/src/cfnlint/data/Serverless/ManagedPolicies.json
+++ b/src/cfnlint/data/Serverless/ManagedPolicies.json
@@ -964,6 +964,7 @@
"AmazonSageMakerCanvasBedrockAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasBedrockAccess",
"AmazonSageMakerCanvasDataPrepFullAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasDataPrepFullAccess",
"AmazonSageMakerCanvasDirectDeployAccess": "arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasDirectDeployAccess",
+ "AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy",
"AmazonSageMakerCanvasForecastAccess": "arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasForecastAccess",
"AmazonSageMakerCanvasFullAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess",
"AmazonSageMakerClusterInstanceRolePolicy": "arn:aws:iam::aws:policy/AmazonSageMakerClusterInstanceRolePolicy",
diff --git a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py
index e8b0108515..e7a716c442 100644
--- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py
@@ -1223,6 +1223,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-groundstation-config.json",
"aws-groundstation-dataflowendpointgroup.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py
index f97c14d952..7f7599dd1a 100644
--- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py
@@ -1194,6 +1194,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
index 227ab6f7de..e1a195fcb4 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
@@ -498,6 +498,7 @@
"AWS::ElasticLoadBalancingV2::TrustStore",
"AWS::ElasticLoadBalancingV2::TrustStoreRevocation",
"AWS::Elasticsearch::Domain",
+ "AWS::EntityResolution::IdMappingWorkflow",
"AWS::EntityResolution::IdNamespace",
"AWS::EntityResolution::MatchingWorkflow",
"AWS::EntityResolution::PolicyStatement",
@@ -1378,12 +1379,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1720,6 +1716,7 @@
"aws-emr-walworkspace.json",
"aws-emrcontainers-virtualcluster.json",
"aws-emrserverless-application.json",
+ "aws-entityresolution-idmappingworkflow.json",
"aws-entityresolution-idnamespace.json",
"aws-entityresolution-matchingworkflow.json",
"aws-entityresolution-policystatement.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py
index beb2a8afed..dbaf6efa80 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py
@@ -1249,12 +1249,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1624,6 +1619,7 @@
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
"aws-glue-tableoptimizer.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-grafana-workspace.json",
"aws-greengrass-connectordefinition.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py
index 713effb7ab..c9362356c4 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py
@@ -1134,6 +1134,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py
index c1e3ff5cbf..4c6d3bc59d 100644
--- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py
@@ -1628,6 +1628,7 @@
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
"aws-glue-tableoptimizer.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-greengrass-connectordefinition.json",
"aws-greengrass-connectordefinitionversion.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py
index a3c62bd0a2..a5c83031d3 100644
--- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py
@@ -914,6 +914,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py
index fd43c37c1c..c90218ac93 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py
@@ -1347,12 +1347,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1753,6 +1748,7 @@
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
"aws-glue-tableoptimizer.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-grafana-workspace.json",
"aws-greengrass-connectordefinition.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py
index cd631ed3ec..ba997f3d5e 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py
@@ -1373,12 +1373,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1782,6 +1777,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-grafana-workspace.json",
"aws-greengrass-connectordefinition.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py
index 1bbc1aa727..e8367525b5 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py
@@ -1025,6 +1025,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py
index ac686537df..b87dc1354e 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py
@@ -900,6 +900,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py
index ab022a5653..37912cad67 100644
--- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py
@@ -1585,6 +1585,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-greengrassv2-componentversion.json",
"aws-greengrassv2-deployment.json",
diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py
index 7f41fef2a7..b6ec2c6337 100644
--- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py
@@ -780,6 +780,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py
index 41c51ea53c..511b539928 100644
--- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py
@@ -1027,7 +1027,6 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
- "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-greengrass-connectordefinition.json",
"aws-greengrass-connectordefinitionversion.json",
diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json
similarity index 75%
rename from src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json
rename to src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json
index 974dd89b9f..4afb3dd2ab 100644
--- a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json
+++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json
@@ -109,8 +109,41 @@
"type": "object"
}
},
+ "handlers": {
+ "create": {
+ "permissions": [
+ "glue:CreateTrigger",
+ "glue:GetTrigger",
+ "glue:TagResource"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "glue:DeleteTrigger",
+ "glue:GetTrigger"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "glue:ListTriggers"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "glue:GetTrigger",
+ "glue:GetTags"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "glue:UpdateTrigger",
+ "glue:UntagResource",
+ "glue:TagResource"
+ ]
+ }
+ },
"primaryIdentifier": [
- "/properties/Id"
+ "/properties/Name"
],
"properties": {
"Actions": {
@@ -126,9 +159,6 @@
"EventBatchingCondition": {
"$ref": "#/definitions/EventBatchingCondition"
},
- "Id": {
- "type": "string"
- },
"Name": {
"type": "string"
},
@@ -161,12 +191,20 @@
"type": "string"
}
},
- "readOnlyProperties": [
- "/properties/Id"
- ],
"required": [
"Type",
"Actions"
],
- "typeName": "AWS::Glue::Trigger"
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git",
+ "tagging": {
+ "cloudFormationSystemTags": false,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::Glue::Trigger",
+ "writeOnlyProperties": [
+ "/properties/StartOnCreation"
+ ]
}
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py
index b9cddf649d..d024b5820a 100644
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py
@@ -6,6 +6,7 @@
"AWS::ACMPCA::CertificateAuthority",
"AWS::ACMPCA::CertificateAuthorityActivation",
"AWS::ACMPCA::Permission",
+ "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus",
"AWS::ARCZonalShift::ZonalAutoshiftConfiguration",
"AWS::AccessAnalyzer::Analyzer",
"AWS::AmazonMQ::Broker",
@@ -730,6 +731,8 @@
"aws-appsync-graphqlschema.json",
"aws-appsync-resolver.json",
"aws-appsync-sourceapiassociation.json",
+ "aws-arczonalshift-autoshiftobservernotificationstatus.json",
+ "aws-arczonalshift-zonalautoshiftconfiguration.json",
"aws-athena-datacatalog.json",
"aws-athena-namedquery.json",
"aws-athena-preparedstatement.json",
@@ -983,6 +986,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
@@ -1058,6 +1062,7 @@
"aws-lambda-alias.json",
"aws-lambda-eventinvokeconfig.json",
"aws-lambda-eventsourcemapping.json",
+ "aws-lambda-function.json",
"aws-lambda-layerversion.json",
"aws-lambda-layerversionpermission.json",
"aws-lambda-permission.json",
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json
deleted file mode 100644
index 3bdd4887b2..0000000000
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json
+++ /dev/null
@@ -1,169 +0,0 @@
-{
- "additionalProperties": false,
- "allOf": [
- {
- "allOf": [
- {
- "required": [
- "ResourceIdentifier"
- ]
- }
- ],
- "anyOf": [
- {
- "required": [
- "ZonalAutoshiftStatus"
- ]
- },
- {
- "required": [
- "PracticeRunConfiguration"
- ]
- }
- ]
- }
- ],
- "createOnlyProperties": [
- "/properties/ResourceIdentifier"
- ],
- "definitions": {
- "ControlCondition": {
- "additionalProperties": false,
- "properties": {
- "AlarmIdentifier": {
- "maxLength": 1024,
- "minLength": 8,
- "pattern": "^arn:.*$",
- "type": "string"
- },
- "Type": {
- "$ref": "#/definitions/ControlConditionType"
- }
- },
- "required": [
- "AlarmIdentifier",
- "Type"
- ],
- "type": "object"
- },
- "ControlConditionType": {
- "enum": [
- "CLOUDWATCH"
- ],
- "type": "string"
- },
- "PracticeRunConfiguration": {
- "additionalProperties": false,
- "properties": {
- "BlockedDates": {
- "insertionOrder": false,
- "items": {
- "maxLength": 10,
- "minLength": 10,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "type": "string"
- },
- "maxItems": 15,
- "minItems": 0,
- "type": "array"
- },
- "BlockedWindows": {
- "insertionOrder": false,
- "items": {
- "maxLength": 19,
- "minLength": 19,
- "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$",
- "type": "string"
- },
- "maxItems": 15,
- "minItems": 0,
- "type": "array"
- },
- "BlockingAlarms": {
- "insertionOrder": false,
- "items": {
- "$ref": "#/definitions/ControlCondition"
- },
- "maxItems": 1,
- "minItems": 1,
- "type": "array"
- },
- "OutcomeAlarms": {
- "insertionOrder": false,
- "items": {
- "$ref": "#/definitions/ControlCondition"
- },
- "maxItems": 1,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "OutcomeAlarms"
- ],
- "type": "object"
- },
- "ZonalAutoshiftStatus": {
- "enum": [
- "ENABLED"
- ],
- "type": "string"
- }
- },
- "handlers": {
- "create": {
- "permissions": [
- "arc-zonal-shift:CreatePracticeRunConfiguration",
- "arc-zonal-shift:GetManagedResource",
- "arc-zonal-shift:UpdateZonalAutoshiftConfiguration",
- "cloudwatch:DescribeAlarms",
- "iam:CreateServiceLinkedRole"
- ]
- },
- "delete": {
- "permissions": [
- "arc-zonal-shift:DeletePracticeRunConfiguration",
- "arc-zonal-shift:GetManagedResource",
- "arc-zonal-shift:UpdateZonalAutoshiftConfiguration"
- ]
- },
- "list": {
- "permissions": [
- "arc-zonal-shift:ListManagedResources"
- ]
- },
- "read": {
- "permissions": [
- "arc-zonal-shift:GetManagedResource"
- ]
- },
- "update": {
- "permissions": [
- "arc-zonal-shift:GetManagedResource",
- "arc-zonal-shift:UpdatePracticeRunConfiguration",
- "arc-zonal-shift:UpdateZonalAutoshiftConfiguration",
- "cloudwatch:DescribeAlarms"
- ]
- }
- },
- "primaryIdentifier": [
- "/properties/ResourceIdentifier"
- ],
- "properties": {
- "PracticeRunConfiguration": {
- "$ref": "#/definitions/PracticeRunConfiguration"
- },
- "ResourceIdentifier": {
- "maxLength": 1024,
- "minLength": 8,
- "type": "string"
- },
- "ZonalAutoshiftStatus": {
- "$ref": "#/definitions/ZonalAutoshiftStatus"
- }
- },
- "tagging": {
- "taggable": false
- },
- "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration"
-}
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json
deleted file mode 100644
index 39009ea83f..0000000000
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json
+++ /dev/null
@@ -1,559 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/FunctionName"
- ],
- "definitions": {
- "Code": {
- "additionalProperties": false,
- "properties": {
- "ImageUri": {
- "type": "string"
- },
- "S3Bucket": {
- "maxLength": 63,
- "minLength": 3,
- "pattern": "^[0-9A-Za-z\\.\\-_]*(?