From adb73b2e44c809666c6a7095e623e8f6cab7b54e Mon Sep 17 00:00:00 2001
From: kddejong <36457093+kddejong@users.noreply.github.com>
Date: Sun, 28 Jul 2024 12:30:30 +0000
Subject: [PATCH] Update CloudFormation schemas to 2024-07-28
---
docs/rules.md | 4 +-
.../data/AdditionalSpecs/Policies.json | 1 +
...5a0d14c62111ff864923fc7b7960dda6.meta.json | 2 +-
...2b6653d7edfe98a64577daae0b481c38.meta.json | 2 +-
...5e4752bbc10d9552de8df8f81348c42b.meta.json | 2 +-
...63a1bf4413531ad420ff60a5a0d7965d.meta.json | 2 +-
...4cfc32461d10e077e7e5de1fc25d8b8f.meta.json | 2 +-
...d3fe2e7838c23f6acd054944cb2b1618.meta.json | 2 +-
...7e9907e4a512c10ddae70b98b4dada43.meta.json | 2 +-
...3fbf0a0fb76625ba46dbe42abd34333c.meta.json | 2 +-
...376aa3fe15197e3bb0e9290ff8719b4e.meta.json | 2 +-
...f60a7b5acfc406ebb10d5748cbb8ed41.meta.json | 2 +-
...f35136af536e92a84ccbaf062c315066.meta.json | 2 +-
...04470222e5e4c690bacef5312891581d.meta.json | 2 +-
...646b563d773e34b020d0ddeab2fe195b.meta.json | 2 +-
...548d44cc32e246ec9d7742088a2c17f8.meta.json | 2 +-
...98ac34d4109512e0e0947ef752dcb9c9.meta.json | 2 +-
...7e4a4542365d35fd75466abcf306eeca.meta.json | 2 +-
...69b7533eabab32ecfc0a00cb19e55a5f.meta.json | 2 +-
...e783fe32b6bb6b13774c32fcca1d303a.meta.json | 2 +-
...05f2567698dfdfa979bf0ccdb68cb856.meta.json | 2 +-
...92030ae5c03d7451980a15735e557edb.meta.json | 2 +-
...6bb7f975b606f8db57532faddfcdd8c8.meta.json | 2 +-
...73ff097c685cda0a63c08a6416dc58ed.meta.json | 2 +-
...25c8d66a1f84939600616bab42579541.meta.json | 2 +-
...972142778e1ff452383ede2ad4bac3d7.meta.json | 2 +-
...26b315ef6f38515840537c02de23abe2.meta.json | 2 +-
...cf908a34e6b4c3fb3e97e2b584f651ca.meta.json | 2 +-
...318c41c71c21b0a17d4f68d82c5aee21.meta.json | 2 +-
...6cd7e4ced378cacdb93f76ed227b5c5d.meta.json | 2 +-
...b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json | 2 +-
...41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json | 2 +-
...b2d398fe33547eed780b9b70f10eb4a2.meta.json | 2 +-
...e50a1638ffe0a5dba0d8805c190a05f8.meta.json | 2 +-
...3b69878d351cffd417dc9a457df808af.meta.json | 2 +-
.../data/Serverless/ManagedPolicies.json | 1 +
.../schemas/providers/af_south_1/__init__.py | 1 +
.../schemas/providers/ap_east_1/__init__.py | 1 +
.../providers/ap_northeast_1/__init__.py | 4 -
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/ap_northeast_2/__init__.py | 5 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/ap_northeast_3/__init__.py | 1 +
.../ap_northeast_3/aws-glue-trigger.json | 172 -----
.../schemas/providers/ap_south_1/__init__.py | 1 +
.../ap_south_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/ap_south_2/__init__.py | 1 +
.../ap_south_2/aws-glue-trigger.json | 172 -----
.../providers/ap_southeast_1/__init__.py | 5 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../ap_southeast_1/aws-glue-trigger.json | 172 -----
.../providers/ap_southeast_2/__init__.py | 5 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../ap_southeast_2/aws-glue-trigger.json | 172 -----
.../providers/ap_southeast_3/__init__.py | 1 +
.../ap_southeast_3/aws-glue-trigger.json | 172 -----
.../providers/ap_southeast_4/__init__.py | 1 +
.../ap_southeast_4/aws-glue-trigger.json | 172 -----
.../providers/ca_central_1/__init__.py | 1 +
.../ca_central_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/ca_west_1/__init__.py | 1 +
.../providers/ca_west_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/cn_north_1/__init__.py | 1 -
.../aws-glue-trigger.json | 54 +-
.../providers/cn_northwest_1/__init__.py | 5 +
...onalshift-zonalautoshiftconfiguration.json | 169 -----
.../cn_northwest_1/aws-glue-trigger.json | 172 -----
.../cn_northwest_1/aws-lambda-function.json | 559 ---------------
.../providers/eu_central_1/__init__.py | 8 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../eu_central_1/aws-dynamodb-table.json | 675 ++++++++++++++++++
.../aws-glue-trigger.json | 54 +-
.../providers/eu_central_2/__init__.py | 1 +
.../eu_central_2/aws-glue-trigger.json | 172 -----
.../schemas/providers/eu_north_1/__init__.py | 10 +-
...onalshift-zonalautoshiftconfiguration.json | 169 -----
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../eu_north_1/aws-glue-trigger.json | 172 -----
.../aws-stepfunctions-activity.json | 98 ---
.../aws-stepfunctions-statemachine.json | 256 -------
.../schemas/providers/eu_south_1/__init__.py | 1 +
.../eu_south_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/eu_south_2/__init__.py | 1 +
.../eu_south_2/aws-glue-trigger.json | 172 -----
.../schemas/providers/eu_west_1/__init__.py | 5 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/eu_west_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/eu_west_2/__init__.py | 5 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/eu_west_2/aws-glue-trigger.json | 172 -----
.../schemas/providers/eu_west_3/__init__.py | 1 +
.../providers/eu_west_3/aws-glue-trigger.json | 172 -----
.../providers/il_central_1/__init__.py | 1 +
.../il_central_1/aws-glue-trigger.json | 172 -----
.../providers/me_central_1/__init__.py | 1 +
.../me_central_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/me_south_1/__init__.py | 1 +
.../me_south_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/sa_east_1/__init__.py | 1 +
.../providers/sa_east_1/aws-glue-trigger.json | 172 -----
.../aws-cleanrooms-analysistemplate.json | 5 +
.../aws-cleanrooms-configuredtable.json | 33 +
...cleanrooms-configuredtableassociation.json | 176 ++++-
.../aws-cleanrooms-privacybudgettemplate.json | 5 +
.../providers/us_east_1/aws-glue-trigger.json | 54 +-
.../schemas/providers/us_east_2/__init__.py | 5 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/us_east_2/aws-glue-trigger.json | 172 -----
.../providers/us_gov_east_1/__init__.py | 1 +
.../us_gov_east_1/aws-glue-trigger.json | 172 -----
.../providers/us_gov_west_1/__init__.py | 6 +
...onalshift-zonalautoshiftconfiguration.json | 169 -----
.../aws-ec2-transitgatewayroutetable.json | 50 --
...2-transitgatewayroutetableassociation.json | 29 -
.../us_gov_west_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/us_west_1/__init__.py | 1 +
.../providers/us_west_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/us_west_2/__init__.py | 5 -
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../aws-glue-trigger.json | 54 +-
150 files changed, 12808 insertions(+), 5951 deletions(-)
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json
rename src/cfnlint/data/schemas/providers/{af_south_1 => cn_north_1}/aws-glue-trigger.json (75%)
delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json
delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-privacybudgettemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-dynamodb-table.json
rename src/cfnlint/data/schemas/providers/{ap_east_1 => eu_central_1}/aws-glue-trigger.json (75%)
delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-arczonalshift-zonalautoshiftconfiguration.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-stepfunctions-activity.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-stepfunctions-statemachine.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-trigger.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-trigger.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-glue-trigger.json
create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-privacybudgettemplate.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-arczonalshift-zonalautoshiftconfiguration.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-transitgatewayroutetable.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-transitgatewayroutetableassociation.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-trigger.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-glue-trigger.json
create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-analysistemplate.json
create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-configuredtable.json
create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-configuredtableassociation.json
create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-cleanrooms-privacybudgettemplate.json
rename src/cfnlint/data/schemas/providers/{ap_northeast_2 => us_west_2}/aws-glue-trigger.json (75%)
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..adadbe5408 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": "\"7a847747a1a66a020bd38864372e0691\"", "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..4f63dbb814 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": "\"ca8e1a04fc63b2ff9fbecafd083d4c23\"", "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..ef484eafad 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": "\"eec775881642a37f3a1f1a7d0a6bc4ac\"", "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..696fd01185 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": "\"7802163df3d7d93e11a86b00e34f6aad\"", "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..5d05e141c5 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": "\"9df62038b3ae83e1ebca0fae290a6c9e\"", "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..d991fe2042 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": "\"0091ea7db0d834dd102854d41acc9465\"", "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..862aad5fb9 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": "\"66b90abbaac5b92408e0c81f7e26f84b\"", "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..ae4e54d1cb 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": "\"b66f6e3aecf4f1f1db0cc96895a9282b\"", "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..57c1b6c30f 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": "\"e3ce3ed348a88d6ddbcd2e6dc7cfd8da\"", "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..24419102cb 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": "\"3baab42a5ff15f377e8bd82f7c07aef4\"", "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..9902a6a140 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": "\"2c22643a766944d0e3e53586b0d96126\"", "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..3816649f33 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": "\"c842775dc9d39e40706b99502aed0834\"", "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..0a9e0313f5 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": "\"e0bc9697e657d7720f2764def2cf6327\"", "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..d901521f10 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": "\"e8b414252aedec64234750eab54dc661\"", "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..9de916c67b 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": "\"52ce4841eb50bb8cd672f837eee199ff\"", "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..97238c7da3 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": "\"a77c7bc66da9215deee3d6bba2ea4576\"", "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..7e00ad8e85 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": "\"d63f4407084e40d5949e72b26c33e0b9\"", "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..33276cf01c 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": "\"5fb5369ea79f603bd4f5bdf351c8fbbf\"", "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..86733969c5 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": "\"c21eedeb1eeafae3bd7659f5ad794f00\"", "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..514da79397 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": "\"9ecbfa7f7363eb118833b8adde4d8c91\"", "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..d22553d9b6 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": "\"cbea992063f1c6f0a849c00c538c769e\"", "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..f64297495c 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": "\"a655425d2c302601c221039ee422606c\"", "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..9a647a2a43 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": "\"8e0db3852a07f786d1caee58f23090a0\"", "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..93c587143d 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": "\"0e403409ef9fc4eba993400e4b6cac28\"", "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..5c7ad96aef 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": "\"ee69307d0b97415ed44be8047825f611\"", "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..fc81c7d5bc 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": "\"7cbca7526f056911816c1e6b9a4c274b\"", "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..9cdc1ebda8 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": "\"620381da9049318e6ba3f5744423d303\"", "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..f805d91fbf 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": "\"de09fd0bc19db83d419dacc715ea287f\"", "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..0f1d294d9a 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": "\"10e6db9769b28d8a924898dc502621d9\"", "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..673293607f 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": "\"b52d88c89cd7e7bfb1d444e803b878c5\"", "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..8877775e04 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": "\"3cdc0301b08bce873552c73f20e6dda9\"", "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..26496bfab0 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
@@ -1378,12 +1378,8 @@
"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",
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-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..21b005c354 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,8 @@
"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 +1620,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-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..141705e93e 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,8 @@
"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 +1749,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-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..c922c4e9a6 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,8 @@
"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 +1778,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-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\\.\\-_]*(?