From ccc61b8126431f48876ef660d0fd164fa147f995 Mon Sep 17 00:00:00 2001
From: kddejong <36457093+kddejong@users.noreply.github.com>
Date: Mon, 29 Jul 2024 12:31:05 +0000
Subject: [PATCH 1/2] Update CloudFormation schemas to 2024-07-29
---
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 | 7 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-membership.json | 257 +++++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/ap_northeast_2/__init__.py | 6 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-membership.json | 257 +++++++
.../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 | 6 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-membership.json | 257 +++++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../ap_southeast_1/aws-glue-trigger.json | 172 -----
.../providers/ap_southeast_2/__init__.py | 6 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-membership.json | 257 +++++++
.../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 | 9 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../aws-cleanrooms-membership.json | 257 +++++++
.../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 | 11 +-
...onalshift-zonalautoshiftconfiguration.json | 169 -----
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../eu_north_1/aws-cleanrooms-membership.json | 257 +++++++
.../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 | 6 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../eu_west_1/aws-cleanrooms-membership.json | 257 +++++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../providers/eu_west_1/aws-glue-trigger.json | 172 -----
.../schemas/providers/eu_west_2/__init__.py | 6 +-
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../eu_west_2/aws-cleanrooms-membership.json | 257 +++++++
.../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 ++++-
.../us_east_1/aws-cleanrooms-membership.json | 5 +
.../aws-cleanrooms-privacybudgettemplate.json | 5 +
.../providers/us_east_1/aws-glue-trigger.json | 54 +-
.../schemas/providers/us_east_2/__init__.py | 3 +
.../aws-cleanrooms-idmappingtable.json | 240 +++++++
...aws-cleanrooms-idnamespaceassociation.json | 237 ++++++
.../providers/us_east_2/aws-glue-trigger.json | 172 -----
.../providers/us_gov_east_1/__init__.py | 3 +
.../us_gov_east_1/aws-glue-trigger.json | 172 -----
.../us_gov_east_1/aws-rds-dbcluster.json | 469 ------------
.../us_gov_east_1/aws-rds-dbinstance.json | 620 ----------------
.../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 | 6 -
.../aws-cleanrooms-analysistemplate.json | 261 +++++++
.../aws-cleanrooms-configuredtable.json | 578 +++++++++++++++
...cleanrooms-configuredtableassociation.json | 151 ++++
.../us_west_2/aws-cleanrooms-membership.json | 257 +++++++
.../aws-cleanrooms-privacybudgettemplate.json | 179 +++++
.../aws-glue-trigger.json | 54 +-
160 files changed, 14440 insertions(+), 7045 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-membership.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-membership.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-membership.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-membership.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-membership.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-membership.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-membership.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-membership.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-idmappingtable.json
create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-idnamespaceassociation.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_east_1/aws-rds-dbcluster.json
delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbinstance.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-membership.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..91f5a97a07 100644
--- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json
@@ -1 +1 @@
-{"etag": "\"85b56752f0864a6fd189c613a0e47255\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"f6424cade6bd6875e053b3223c49aed1\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json
index 871e4caa60..c7a0f9dd40 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": "\"f39edee7c07c1ea6080ed100476f2479\"", "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..c25cbd641b 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": "\"b0ccb0a1bb2e4f479f516cd7b62ac2dd\"", "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..c1beafe6ac 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": "\"76e6272a2587962edab5fe0092ae5d20\"", "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..ea49dcec50 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": "\"ecfa6a064f53f31113509e1fa29696d9\"", "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..59fec71a11 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": "\"2fd5167940dc6ccdf3016b67669e4e75\"", "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..ad39b33a94 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": "\"9045b19ac135db55e4462dee3e096c96\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
index 3c0951c093..cc38cb1224 100644
--- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
@@ -1 +1 @@
-{"etag": "\"09adaeca3c99a11e03d10ae01d6b1362\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"}
+{"etag": "\"6790e073cf0243d7ea9af62a15173f1b\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
index 4bdb72a25c..b376387163 100644
--- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
@@ -1 +1 @@
-{"etag": "\"dc24a194340be9e0c96baac963c8129e\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"315af9d9ac7057d355d964206c0edc07\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json
index 19505b6611..440cb0a242 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": "\"0d1a9e1e4c03b39f867a380310644b1d\"", "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..a4ff8f5037 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": "\"96dc879ab047c392e5b52437d231197f\"", "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..3531a68379 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": "\"3a3f1c868665969b97549e63ae8f2f1c\"", "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..13069a2a8a 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": "\"bf517629621d3a1e5307abe1a9c7ccdb\"", "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..ea23f7b0a5 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": "\"042fceea98c7d44b8d0283d7a57ab08a\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json
index 08e003d816..081624294d 100644
--- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json
@@ -1 +1 @@
-{"etag": "\"2ece9b6761f65207a718209f0a3292dc\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"ea66e0e4d7a7aa49da215f00ce3a6a5d\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
index 2a64d418ef..75151d1f2e 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": "\"96d7fc2b48cb9407e9e41ad65425efd0\"", "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..09cac50c21 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": "\"cdca2bd3dbca3a235b0055ab7a51e7e0\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json
index 920eb09d2c..0e57eab4dc 100644
--- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json
@@ -1 +1 @@
-{"etag": "\"1ecbe028dc219b57affb8779e23c43bd\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"9f3180dc3c31a517efe74bc506ee0866\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
index 1858a46cfb..7e6fcbd435 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": "\"a6692e4d41a459a70ce983dc6b59b0f4\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
index e7cbf9f58d..24e9fac72b 100644
--- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
@@ -1 +1 @@
-{"etag": "\"707e5da477848d380366e54cb284fa03\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"e1fa083b7a43b20206695178368e9127\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json
index 741115e473..5bebbf05be 100644
--- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json
@@ -1 +1 @@
-{"etag": "\"44c5f3dddd70045c86f404818d37ed52\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"32ad94e2e9c662c3d3531a4a7fa45f3c\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json
index 791be06335..23085fce3f 100644
--- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json
@@ -1 +1 @@
-{"etag": "\"aa5e348b4f7132e252e9bd49c07b4ace\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"5ca181c2dc03797dbacc2f4d10e57a87\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json
index f4f74505da..05d7fdc0a0 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": "\"16279eba6c253cd37a9d12eb05a2acc4\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
index a21789cef9..2c921b2406 100644
--- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
@@ -1 +1 @@
-{"etag": "\"1d5fccf6e137b998472b6b1b8b6b87b5\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"778518d6523c8b730b73b2deb2b5fc16\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json
index dfa279dc22..f92b469fe4 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": "\"86304012fa2ed27891a61c26efa12b44\"", "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..bb861f0fd0 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": "\"443d3c78c2b5224f75af6c205b14c6a6\"", "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..1f6c9b5bd6 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": "\"f16accb62e86f691dd44ea64b20651ca\"", "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..c89f127ac7 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": "\"078f5fd09c9f4629e6778500c03c7f19\"", "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..f1619c54d3 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": "\"c7a243ab85e98d8caf524b08d0b24e64\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json
index 337dcdefd7..9314026de0 100644
--- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json
@@ -1 +1 @@
-{"etag": "\"bf4182d4a20d8f80f97810b06ca54597\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"0ef7eed995a8f8bf1861c81df3a407ec\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
index eeb5a3ddb6..728d77dbc2 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": "\"5d734666dd49b9eca55de51bdfcff2dc\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
index 3f1da0f2d5..1df46708f8 100644
--- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
@@ -1 +1 @@
-{"etag": "\"1aa4602885a3fe30635853261c6e42c6\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"581aee2ca97cf76fca8d8cc6e1e85e09\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json
index 0e9aa30814..fe304f97b4 100644
--- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json
@@ -1 +1 @@
-{"etag": "\"efadb871cc9184c747a8a532df781be6\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a85e1c596370749f2b9129646aa9f7a4\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/Serverless/ManagedPolicies.json b/src/cfnlint/data/Serverless/ManagedPolicies.json
index 48100fb15a..b0314147b6 100644
--- a/src/cfnlint/data/Serverless/ManagedPolicies.json
+++ b/src/cfnlint/data/Serverless/ManagedPolicies.json
@@ -964,6 +964,7 @@
"AmazonSageMakerCanvasBedrockAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasBedrockAccess",
"AmazonSageMakerCanvasDataPrepFullAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasDataPrepFullAccess",
"AmazonSageMakerCanvasDirectDeployAccess": "arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasDirectDeployAccess",
+ "AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy",
"AmazonSageMakerCanvasForecastAccess": "arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasForecastAccess",
"AmazonSageMakerCanvasFullAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess",
"AmazonSageMakerClusterInstanceRolePolicy": "arn:aws:iam::aws:policy/AmazonSageMakerClusterInstanceRolePolicy",
diff --git a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py
index e8b0108515..e7a716c442 100644
--- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py
@@ -1223,6 +1223,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-groundstation-config.json",
"aws-groundstation-dataflowendpointgroup.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py
index f97c14d952..7f7599dd1a 100644
--- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py
@@ -1194,6 +1194,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
index 227ab6f7de..e1a195fcb4 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py
@@ -498,6 +498,7 @@
"AWS::ElasticLoadBalancingV2::TrustStore",
"AWS::ElasticLoadBalancingV2::TrustStoreRevocation",
"AWS::Elasticsearch::Domain",
+ "AWS::EntityResolution::IdMappingWorkflow",
"AWS::EntityResolution::IdNamespace",
"AWS::EntityResolution::MatchingWorkflow",
"AWS::EntityResolution::PolicyStatement",
@@ -1378,12 +1379,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1720,6 +1716,7 @@
"aws-emr-walworkspace.json",
"aws-emrcontainers-virtualcluster.json",
"aws-emrserverless-application.json",
+ "aws-entityresolution-idmappingworkflow.json",
"aws-entityresolution-idnamespace.json",
"aws-entityresolution-matchingworkflow.json",
"aws-entityresolution-policystatement.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py
index beb2a8afed..dbaf6efa80 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py
@@ -1249,12 +1249,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1624,6 +1619,7 @@
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
"aws-glue-tableoptimizer.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-grafana-workspace.json",
"aws-greengrass-connectordefinition.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py
index 713effb7ab..c9362356c4 100644
--- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py
@@ -1134,6 +1134,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py
index c1e3ff5cbf..4c6d3bc59d 100644
--- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py
@@ -1628,6 +1628,7 @@
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
"aws-glue-tableoptimizer.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-greengrass-connectordefinition.json",
"aws-greengrass-connectordefinitionversion.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py
index a3c62bd0a2..a5c83031d3 100644
--- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py
@@ -914,6 +914,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py
index fd43c37c1c..c90218ac93 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py
@@ -1347,12 +1347,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1753,6 +1748,7 @@
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
"aws-glue-tableoptimizer.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-grafana-workspace.json",
"aws-greengrass-connectordefinition.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py
index cd631ed3ec..ba997f3d5e 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py
@@ -1373,12 +1373,7 @@
"aws-certificatemanager-certificate.json",
"aws-chatbot-microsoftteamschannelconfiguration.json",
"aws-chatbot-slackchannelconfiguration.json",
- "aws-cleanrooms-analysistemplate.json",
"aws-cleanrooms-collaboration.json",
- "aws-cleanrooms-configuredtable.json",
- "aws-cleanrooms-configuredtableassociation.json",
- "aws-cleanrooms-membership.json",
- "aws-cleanrooms-privacybudgettemplate.json",
"aws-cloud9-environmentec2.json",
"aws-cloudformation-customresource.json",
"aws-cloudformation-hookdefaultversion.json",
@@ -1782,6 +1777,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-grafana-workspace.json",
"aws-greengrass-connectordefinition.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json
new file mode 100644
index 0000000000..f05f6d98ef
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json
@@ -0,0 +1,261 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/Name",
+ "/properties/MembershipIdentifier",
+ "/properties/Source",
+ "/properties/Source/Text",
+ "/properties/Format",
+ "/properties/AnalysisParameters"
+ ],
+ "definitions": {
+ "AnalysisParameter": {
+ "additionalProperties": false,
+ "properties": {
+ "DefaultValue": {
+ "maxLength": 250,
+ "minLength": 0,
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "[0-9a-zA-Z_]+",
+ "type": "string"
+ },
+ "Type": {
+ "enum": [
+ "SMALLINT",
+ "INTEGER",
+ "BIGINT",
+ "DECIMAL",
+ "REAL",
+ "DOUBLE_PRECISION",
+ "BOOLEAN",
+ "CHAR",
+ "VARCHAR",
+ "DATE",
+ "TIMESTAMP",
+ "TIMESTAMPTZ",
+ "TIME",
+ "TIMETZ",
+ "VARBYTE"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AnalysisSchema": {
+ "additionalProperties": false,
+ "properties": {
+ "ReferencedTables": {
+ "$ref": "#/definitions/ReferencedTables"
+ }
+ },
+ "required": [
+ "ReferencedTables"
+ ],
+ "type": "object"
+ },
+ "AnalysisSource": {
+ "additionalProperties": false,
+ "properties": {
+ "Text": {
+ "maxLength": 15000,
+ "minLength": 0,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Text"
+ ],
+ "type": "object"
+ },
+ "ReferencedTables": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/TableName"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListAnalysisTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListAnalysisTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateAnalysisTemplate",
+ "cleanrooms:GetAnalysisTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "AnalysisParameters": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisParameter"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Format": {
+ "enum": [
+ "SQL"
+ ],
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "Schema": {
+ "$ref": "#/definitions/AnalysisSchema"
+ },
+ "Source": {
+ "$ref": "#/definitions/AnalysisSource"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/AnalysisTemplateIdentifier",
+ "/properties/Schema",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "Source",
+ "Format",
+ "Name",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::AnalysisTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json
new file mode 100644
index 0000000000..a693e37236
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json
@@ -0,0 +1,578 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/AllowedColumns",
+ "/properties/AnalysisMethod",
+ "/properties/TableReference"
+ ],
+ "definitions": {
+ "AggregateColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnNames": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "Function": {
+ "$ref": "#/definitions/AggregateFunctionName"
+ }
+ },
+ "required": [
+ "ColumnNames",
+ "Function"
+ ],
+ "type": "object"
+ },
+ "AggregateFunctionName": {
+ "enum": [
+ "SUM",
+ "SUM_DISTINCT",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "AVG"
+ ],
+ "type": "string"
+ },
+ "AggregationConstraint": {
+ "additionalProperties": false,
+ "properties": {
+ "ColumnName": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "Minimum": {
+ "maximum": 100000,
+ "minimum": 2,
+ "type": "number"
+ },
+ "Type": {
+ "$ref": "#/definitions/AggregationType"
+ }
+ },
+ "required": [
+ "ColumnName",
+ "Minimum",
+ "Type"
+ ],
+ "type": "object"
+ },
+ "AggregationType": {
+ "enum": [
+ "COUNT_DISTINCT"
+ ],
+ "type": "string"
+ },
+ "AllowedAnalyses": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysis"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AllowedAnalysis": {
+ "maxLength": 200,
+ "minLength": 0,
+ "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)",
+ "type": "string"
+ },
+ "AllowedAnalysisProvider": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "\\d+",
+ "type": "string"
+ },
+ "AllowedAnalysisProviders": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AllowedAnalysisProvider"
+ },
+ "minItems": 0,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "enum": [
+ "DIRECT_QUERY"
+ ],
+ "type": "string"
+ },
+ "AnalysisRule": {
+ "additionalProperties": false,
+ "properties": {
+ "Policy": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy"
+ },
+ "Type": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRuleType"
+ }
+ },
+ "required": [
+ "Type",
+ "Policy"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleAggregation": {
+ "additionalProperties": false,
+ "properties": {
+ "AggregateColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregateColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "DimensionColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ },
+ "JoinRequired": {
+ "$ref": "#/definitions/JoinRequiredOption"
+ },
+ "OutputConstraints": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AggregationConstraint"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ScalarFunctions": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/ScalarFunctions"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "AggregateColumns",
+ "JoinColumns",
+ "DimensionColumns",
+ "ScalarFunctions",
+ "OutputConstraints"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleColumnName": {
+ "maxLength": 127,
+ "minLength": 1,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "AnalysisRuleCustom": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedAnalyses": {
+ "$ref": "#/definitions/AllowedAnalyses"
+ },
+ "AllowedAnalysisProviders": {
+ "$ref": "#/definitions/AllowedAnalysisProviders"
+ },
+ "DifferentialPrivacy": {
+ "$ref": "#/definitions/DifferentialPrivacy"
+ }
+ },
+ "required": [
+ "AllowedAnalyses"
+ ],
+ "type": "object"
+ },
+ "AnalysisRuleList": {
+ "additionalProperties": false,
+ "properties": {
+ "AllowedJoinOperators": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/JoinOperator"
+ },
+ "maxItems": 2,
+ "type": "array"
+ },
+ "JoinColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "ListColumns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRuleColumnName"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "JoinColumns",
+ "ListColumns"
+ ],
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicy": {
+ "additionalProperties": false,
+ "properties": {
+ "V1": {
+ "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1"
+ }
+ },
+ "required": [
+ "V1"
+ ],
+ "title": "V1",
+ "type": "object"
+ },
+ "ConfiguredTableAnalysisRulePolicyV1": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "List": {
+ "$ref": "#/definitions/AnalysisRuleList"
+ }
+ },
+ "required": [
+ "List"
+ ],
+ "title": "List",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Aggregation": {
+ "$ref": "#/definitions/AnalysisRuleAggregation"
+ }
+ },
+ "required": [
+ "Aggregation"
+ ],
+ "title": "Aggregation",
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "Custom": {
+ "$ref": "#/definitions/AnalysisRuleCustom"
+ }
+ },
+ "required": [
+ "Custom"
+ ],
+ "title": "Custom",
+ "type": "object"
+ }
+ ]
+ },
+ "ConfiguredTableAnalysisRuleType": {
+ "enum": [
+ "AGGREGATION",
+ "LIST",
+ "CUSTOM"
+ ],
+ "type": "string"
+ },
+ "DifferentialPrivacy": {
+ "additionalProperties": false,
+ "properties": {
+ "Columns": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/DifferentialPrivacyColumn"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "Columns"
+ ],
+ "type": "object"
+ },
+ "DifferentialPrivacyColumn": {
+ "additionalProperties": false,
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Name"
+ ],
+ "type": "object"
+ },
+ "GlueTableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "DatabaseName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "TableName": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "DatabaseName",
+ "TableName"
+ ],
+ "type": "object"
+ },
+ "JoinOperator": {
+ "enum": [
+ "OR",
+ "AND"
+ ],
+ "type": "string"
+ },
+ "JoinRequiredOption": {
+ "enum": [
+ "QUERY_RUNNER"
+ ],
+ "type": "string"
+ },
+ "ScalarFunctions": {
+ "enum": [
+ "TRUNC",
+ "ABS",
+ "CEILING",
+ "FLOOR",
+ "LN",
+ "LOG",
+ "ROUND",
+ "SQRT",
+ "CAST",
+ "LOWER",
+ "RTRIM",
+ "UPPER",
+ "COALESCE",
+ "CONVERT",
+ "CURRENT_DATE",
+ "DATEADD",
+ "EXTRACT",
+ "GETDATE",
+ "SUBSTRING",
+ "TO_CHAR",
+ "TO_DATE",
+ "TO_NUMBER",
+ "TO_TIMESTAMP",
+ "TRIM"
+ ],
+ "type": "string"
+ },
+ "TableReference": {
+ "additionalProperties": false,
+ "properties": {
+ "Glue": {
+ "$ref": "#/definitions/GlueTableReference"
+ }
+ },
+ "required": [
+ "Glue"
+ ],
+ "title": "Glue",
+ "type": "object"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTable",
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:ListConfiguredTables",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListConfiguredTables"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTable",
+ "cleanrooms:GetConfiguredTable",
+ "cleanrooms:CreateConfiguredTableAnalysisRule",
+ "cleanrooms:UpdateConfiguredTableAnalysisRule",
+ "cleanrooms:GetConfiguredTableAnalysisRule",
+ "cleanrooms:DeleteConfiguredTableAnalysisRule",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "glue:GetDatabase",
+ "glue:GetDatabases",
+ "glue:GetTable",
+ "glue:GetTables",
+ "glue:GetPartition",
+ "glue:GetPartitions",
+ "glue:BatchGetPartition",
+ "glue:GetSchemaVersion"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "properties": {
+ "AllowedColumns": {
+ "insertionOrder": false,
+ "items": {
+ "maxLength": 128,
+ "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ },
+ "AnalysisMethod": {
+ "$ref": "#/definitions/AnalysisMethod"
+ },
+ "AnalysisRules": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/AnalysisRule"
+ },
+ "maxItems": 1,
+ "minItems": 1,
+ "type": "array"
+ },
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 100,
+ "minLength": 1,
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
+ "type": "string"
+ },
+ "TableReference": {
+ "$ref": "#/definitions/TableReference"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/ConfiguredTableIdentifier"
+ ],
+ "required": [
+ "AllowedColumns",
+ "AnalysisMethod",
+ "Name",
+ "TableReference"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTable"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json
new file mode 100644
index 0000000000..cca50b13ee
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json
@@ -0,0 +1,151 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/ConfiguredTableIdentifier",
+ "/properties/Name",
+ "/properties/MembershipIdentifier"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListConfiguredTableAssociations",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListConfiguredTableAssociations"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetConfiguredTableAssociation",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateConfiguredTableAssociation",
+ "cleanrooms:GetConfiguredTableAssociation",
+ "iam:PassRole",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "ConfiguredTableAssociationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "ConfiguredTableIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Description": {
+ "maxLength": 255,
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Name": {
+ "maxLength": 128,
+ "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$",
+ "type": "string"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/ConfiguredTableAssociationIdentifier",
+ "/properties/Arn"
+ ],
+ "required": [
+ "ConfiguredTableIdentifier",
+ "Name",
+ "RoleArn",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::ConfiguredTableAssociation"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json
new file mode 100644
index 0000000000..0ebee0d0f7
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json
@@ -0,0 +1,257 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/CollaborationIdentifier"
+ ],
+ "definitions": {
+ "MembershipPaymentConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "QueryCompute": {
+ "$ref": "#/definitions/MembershipQueryComputePaymentConfig"
+ }
+ },
+ "required": [
+ "QueryCompute"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryOutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "S3": {
+ "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration"
+ }
+ },
+ "required": [
+ "S3"
+ ],
+ "type": "object"
+ },
+ "MembershipProtectedQueryResultConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "OutputConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration"
+ },
+ "RoleArn": {
+ "maxLength": 512,
+ "minLength": 32,
+ "type": "string"
+ }
+ },
+ "required": [
+ "OutputConfiguration"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryComputePaymentConfig": {
+ "additionalProperties": false,
+ "properties": {
+ "IsResponsible": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "IsResponsible"
+ ],
+ "type": "object"
+ },
+ "MembershipQueryLogStatus": {
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ],
+ "type": "string"
+ },
+ "MembershipStatus": {
+ "enum": [
+ "ACTIVE",
+ "REMOVED",
+ "COLLABORATION_DELETED"
+ ],
+ "type": "string"
+ },
+ "ProtectedQueryS3OutputConfiguration": {
+ "additionalProperties": false,
+ "properties": {
+ "Bucket": {
+ "maxLength": 63,
+ "minLength": 3,
+ "type": "string"
+ },
+ "KeyPrefix": {
+ "type": "string"
+ },
+ "ResultFormat": {
+ "$ref": "#/definitions/ResultFormat"
+ }
+ },
+ "required": [
+ "ResultFormat",
+ "Bucket"
+ ],
+ "type": "object"
+ },
+ "ResultFormat": {
+ "enum": [
+ "CSV",
+ "PARQUET"
+ ],
+ "type": "string"
+ },
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreateMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:ListMemberships",
+ "iam:PassRole"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeleteMembership",
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListMemberships",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "cleanrooms:ListMemberships"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetMembership",
+ "cleanrooms:ListTagsForResource",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:GetLogDelivery"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdateMembership",
+ "cleanrooms:GetMembership",
+ "logs:CreateLogDelivery",
+ "logs:GetLogDelivery",
+ "logs:UpdateLogDelivery",
+ "logs:DeleteLogDelivery",
+ "logs:ListLogDeliveries",
+ "logs:DescribeLogGroups",
+ "logs:DescribeResourcePolicies",
+ "logs:PutResourcePolicy",
+ "logs:CreateLogGroup",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource",
+ "iam:PassRole"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationCreatorAccountId": {
+ "maxLength": 12,
+ "minLength": 12,
+ "pattern": "^\\d+$",
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "DefaultResultConfiguration": {
+ "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PaymentConfiguration": {
+ "$ref": "#/definitions/MembershipPaymentConfiguration"
+ },
+ "QueryLogStatus": {
+ "$ref": "#/definitions/MembershipQueryLogStatus"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/Arn",
+ "/properties/CollaborationArn",
+ "/properties/CollaborationCreatorAccountId",
+ "/properties/MembershipIdentifier"
+ ],
+ "required": [
+ "CollaborationIdentifier",
+ "QueryLogStatus"
+ ],
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::Membership"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json
new file mode 100644
index 0000000000..62ba216d34
--- /dev/null
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json
@@ -0,0 +1,179 @@
+{
+ "additionalProperties": false,
+ "createOnlyProperties": [
+ "/properties/MembershipIdentifier",
+ "/properties/PrivacyBudgetType",
+ "/properties/AutoRefresh"
+ ],
+ "definitions": {
+ "Tag": {
+ "additionalProperties": false,
+ "properties": {
+ "Key": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "Value": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "Value",
+ "Key"
+ ],
+ "type": "object"
+ }
+ },
+ "handlers": {
+ "create": {
+ "permissions": [
+ "cleanrooms:CreatePrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "cleanrooms:DeletePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListPrivacyBudgetTemplates",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:UntagResource"
+ ]
+ },
+ "list": {
+ "handlerSchema": {
+ "properties": {
+ "MembershipIdentifier": {
+ "$ref": "resource-schema.json#/properties/MembershipIdentifier"
+ }
+ },
+ "required": [
+ "MembershipIdentifier"
+ ]
+ },
+ "permissions": [
+ "cleanrooms:ListPrivacyBudgetTemplates"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "cleanrooms:UpdatePrivacyBudgetTemplate",
+ "cleanrooms:GetPrivacyBudgetTemplate",
+ "cleanrooms:ListTagsForResource",
+ "cleanrooms:TagResource",
+ "cleanrooms:UntagResource"
+ ]
+ }
+ },
+ "primaryIdentifier": [
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/MembershipIdentifier"
+ ],
+ "properties": {
+ "Arn": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "AutoRefresh": {
+ "enum": [
+ "CALENDAR_MONTH",
+ "NONE"
+ ],
+ "type": "string"
+ },
+ "CollaborationArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "CollaborationIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "MembershipArn": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "MembershipIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "Parameters": {
+ "additionalProperties": false,
+ "properties": {
+ "Epsilon": {
+ "maximum": 20,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "UsersNoisePerQuery": {
+ "maximum": 100,
+ "minimum": 10,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "Epsilon",
+ "UsersNoisePerQuery"
+ ],
+ "type": "object"
+ },
+ "PrivacyBudgetTemplateIdentifier": {
+ "maxLength": 36,
+ "minLength": 36,
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+ "type": "string"
+ },
+ "PrivacyBudgetType": {
+ "enum": [
+ "DIFFERENTIAL_PRIVACY"
+ ],
+ "type": "string"
+ },
+ "Tags": {
+ "insertionOrder": false,
+ "items": {
+ "$ref": "#/definitions/Tag"
+ },
+ "type": "array"
+ }
+ },
+ "readOnlyProperties": [
+ "/properties/CollaborationArn",
+ "/properties/CollaborationIdentifier",
+ "/properties/PrivacyBudgetTemplateIdentifier",
+ "/properties/Arn",
+ "/properties/MembershipArn"
+ ],
+ "replacementStrategy": "delete_then_create",
+ "required": [
+ "AutoRefresh",
+ "PrivacyBudgetType",
+ "Parameters",
+ "MembershipIdentifier"
+ ],
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms",
+ "tagging": {
+ "cloudFormationSystemTags": true,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate"
+}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py
index 1bbc1aa727..e8367525b5 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py
@@ -1025,6 +1025,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py
index ac686537df..b87dc1354e 100644
--- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py
@@ -900,6 +900,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py
index ab022a5653..37912cad67 100644
--- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py
@@ -1585,6 +1585,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-greengrassv2-componentversion.json",
"aws-greengrassv2-deployment.json",
diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py
index 7f41fef2a7..b6ec2c6337 100644
--- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py
@@ -780,6 +780,7 @@
"aws-glue-partition.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py
index 41c51ea53c..511b539928 100644
--- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py
@@ -1027,7 +1027,6 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
- "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-greengrass-connectordefinition.json",
"aws-greengrass-connectordefinitionversion.json",
diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json
similarity index 75%
rename from src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json
rename to src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json
index 974dd89b9f..4afb3dd2ab 100644
--- a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json
+++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json
@@ -109,8 +109,41 @@
"type": "object"
}
},
+ "handlers": {
+ "create": {
+ "permissions": [
+ "glue:CreateTrigger",
+ "glue:GetTrigger",
+ "glue:TagResource"
+ ]
+ },
+ "delete": {
+ "permissions": [
+ "glue:DeleteTrigger",
+ "glue:GetTrigger"
+ ]
+ },
+ "list": {
+ "permissions": [
+ "glue:ListTriggers"
+ ]
+ },
+ "read": {
+ "permissions": [
+ "glue:GetTrigger",
+ "glue:GetTags"
+ ]
+ },
+ "update": {
+ "permissions": [
+ "glue:UpdateTrigger",
+ "glue:UntagResource",
+ "glue:TagResource"
+ ]
+ }
+ },
"primaryIdentifier": [
- "/properties/Id"
+ "/properties/Name"
],
"properties": {
"Actions": {
@@ -126,9 +159,6 @@
"EventBatchingCondition": {
"$ref": "#/definitions/EventBatchingCondition"
},
- "Id": {
- "type": "string"
- },
"Name": {
"type": "string"
},
@@ -161,12 +191,20 @@
"type": "string"
}
},
- "readOnlyProperties": [
- "/properties/Id"
- ],
"required": [
"Type",
"Actions"
],
- "typeName": "AWS::Glue::Trigger"
+ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git",
+ "tagging": {
+ "cloudFormationSystemTags": false,
+ "tagOnCreate": true,
+ "tagProperty": "/properties/Tags",
+ "tagUpdatable": true,
+ "taggable": true
+ },
+ "typeName": "AWS::Glue::Trigger",
+ "writeOnlyProperties": [
+ "/properties/StartOnCreation"
+ ]
}
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py
index b9cddf649d..d024b5820a 100644
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py
@@ -6,6 +6,7 @@
"AWS::ACMPCA::CertificateAuthority",
"AWS::ACMPCA::CertificateAuthorityActivation",
"AWS::ACMPCA::Permission",
+ "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus",
"AWS::ARCZonalShift::ZonalAutoshiftConfiguration",
"AWS::AccessAnalyzer::Analyzer",
"AWS::AmazonMQ::Broker",
@@ -730,6 +731,8 @@
"aws-appsync-graphqlschema.json",
"aws-appsync-resolver.json",
"aws-appsync-sourceapiassociation.json",
+ "aws-arczonalshift-autoshiftobservernotificationstatus.json",
+ "aws-arczonalshift-zonalautoshiftconfiguration.json",
"aws-athena-datacatalog.json",
"aws-athena-namedquery.json",
"aws-athena-preparedstatement.json",
@@ -983,6 +986,7 @@
"aws-glue-schemaversionmetadata.json",
"aws-glue-securityconfiguration.json",
"aws-glue-table.json",
+ "aws-glue-trigger.json",
"aws-glue-workflow.json",
"aws-guardduty-detector.json",
"aws-guardduty-filter.json",
@@ -1058,6 +1062,7 @@
"aws-lambda-alias.json",
"aws-lambda-eventinvokeconfig.json",
"aws-lambda-eventsourcemapping.json",
+ "aws-lambda-function.json",
"aws-lambda-layerversion.json",
"aws-lambda-layerversionpermission.json",
"aws-lambda-permission.json",
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json
deleted file mode 100644
index 3bdd4887b2..0000000000
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json
+++ /dev/null
@@ -1,169 +0,0 @@
-{
- "additionalProperties": false,
- "allOf": [
- {
- "allOf": [
- {
- "required": [
- "ResourceIdentifier"
- ]
- }
- ],
- "anyOf": [
- {
- "required": [
- "ZonalAutoshiftStatus"
- ]
- },
- {
- "required": [
- "PracticeRunConfiguration"
- ]
- }
- ]
- }
- ],
- "createOnlyProperties": [
- "/properties/ResourceIdentifier"
- ],
- "definitions": {
- "ControlCondition": {
- "additionalProperties": false,
- "properties": {
- "AlarmIdentifier": {
- "maxLength": 1024,
- "minLength": 8,
- "pattern": "^arn:.*$",
- "type": "string"
- },
- "Type": {
- "$ref": "#/definitions/ControlConditionType"
- }
- },
- "required": [
- "AlarmIdentifier",
- "Type"
- ],
- "type": "object"
- },
- "ControlConditionType": {
- "enum": [
- "CLOUDWATCH"
- ],
- "type": "string"
- },
- "PracticeRunConfiguration": {
- "additionalProperties": false,
- "properties": {
- "BlockedDates": {
- "insertionOrder": false,
- "items": {
- "maxLength": 10,
- "minLength": 10,
- "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
- "type": "string"
- },
- "maxItems": 15,
- "minItems": 0,
- "type": "array"
- },
- "BlockedWindows": {
- "insertionOrder": false,
- "items": {
- "maxLength": 19,
- "minLength": 19,
- "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$",
- "type": "string"
- },
- "maxItems": 15,
- "minItems": 0,
- "type": "array"
- },
- "BlockingAlarms": {
- "insertionOrder": false,
- "items": {
- "$ref": "#/definitions/ControlCondition"
- },
- "maxItems": 1,
- "minItems": 1,
- "type": "array"
- },
- "OutcomeAlarms": {
- "insertionOrder": false,
- "items": {
- "$ref": "#/definitions/ControlCondition"
- },
- "maxItems": 1,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "OutcomeAlarms"
- ],
- "type": "object"
- },
- "ZonalAutoshiftStatus": {
- "enum": [
- "ENABLED"
- ],
- "type": "string"
- }
- },
- "handlers": {
- "create": {
- "permissions": [
- "arc-zonal-shift:CreatePracticeRunConfiguration",
- "arc-zonal-shift:GetManagedResource",
- "arc-zonal-shift:UpdateZonalAutoshiftConfiguration",
- "cloudwatch:DescribeAlarms",
- "iam:CreateServiceLinkedRole"
- ]
- },
- "delete": {
- "permissions": [
- "arc-zonal-shift:DeletePracticeRunConfiguration",
- "arc-zonal-shift:GetManagedResource",
- "arc-zonal-shift:UpdateZonalAutoshiftConfiguration"
- ]
- },
- "list": {
- "permissions": [
- "arc-zonal-shift:ListManagedResources"
- ]
- },
- "read": {
- "permissions": [
- "arc-zonal-shift:GetManagedResource"
- ]
- },
- "update": {
- "permissions": [
- "arc-zonal-shift:GetManagedResource",
- "arc-zonal-shift:UpdatePracticeRunConfiguration",
- "arc-zonal-shift:UpdateZonalAutoshiftConfiguration",
- "cloudwatch:DescribeAlarms"
- ]
- }
- },
- "primaryIdentifier": [
- "/properties/ResourceIdentifier"
- ],
- "properties": {
- "PracticeRunConfiguration": {
- "$ref": "#/definitions/PracticeRunConfiguration"
- },
- "ResourceIdentifier": {
- "maxLength": 1024,
- "minLength": 8,
- "type": "string"
- },
- "ZonalAutoshiftStatus": {
- "$ref": "#/definitions/ZonalAutoshiftStatus"
- }
- },
- "tagging": {
- "taggable": false
- },
- "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration"
-}
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json
deleted file mode 100644
index 974dd89b9f..0000000000
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/Name",
- "/properties/WorkflowName",
- "/properties/Type"
- ],
- "definitions": {
- "Action": {
- "additionalProperties": false,
- "properties": {
- "Arguments": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "NotificationProperty": {
- "$ref": "#/definitions/NotificationProperty"
- },
- "SecurityConfiguration": {
- "type": "string"
- },
- "Timeout": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Condition": {
- "additionalProperties": false,
- "properties": {
- "CrawlState": {
- "type": "string"
- },
- "CrawlerName": {
- "type": "string"
- },
- "JobName": {
- "type": "string"
- },
- "LogicalOperator": {
- "enum": [
- "EQUALS"
- ],
- "type": "string"
- },
- "State": {
- "enum": [
- "SUCCEEDED",
- "STOPPED",
- "TIMEOUT",
- "FAILED"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "EventBatchingCondition": {
- "additionalProperties": false,
- "properties": {
- "BatchSize": {
- "type": "integer"
- },
- "BatchWindow": {
- "type": "integer"
- }
- },
- "required": [
- "BatchSize"
- ],
- "type": "object"
- },
- "NotificationProperty": {
- "additionalProperties": false,
- "properties": {
- "NotifyDelayAfter": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "Predicate": {
- "additionalProperties": false,
- "properties": {
- "Conditions": {
- "items": {
- "$ref": "#/definitions/Condition"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Logical": {
- "enum": [
- "AND",
- "ANY"
- ],
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "primaryIdentifier": [
- "/properties/Id"
- ],
- "properties": {
- "Actions": {
- "items": {
- "$ref": "#/definitions/Action"
- },
- "type": "array",
- "uniqueItems": false
- },
- "Description": {
- "type": "string"
- },
- "EventBatchingCondition": {
- "$ref": "#/definitions/EventBatchingCondition"
- },
- "Id": {
- "type": "string"
- },
- "Name": {
- "type": "string"
- },
- "Predicate": {
- "$ref": "#/definitions/Predicate"
- },
- "Schedule": {
- "type": "string"
- },
- "StartOnCreation": {
- "type": "boolean"
- },
- "Tags": {
- "format": "json",
- "type": [
- "object",
- "string"
- ]
- },
- "Type": {
- "enum": [
- "CONDITIONAL",
- "EVENT",
- "ON_DEMAND",
- "SCHEDULED"
- ],
- "type": "string"
- },
- "WorkflowName": {
- "type": "string"
- }
- },
- "readOnlyProperties": [
- "/properties/Id"
- ],
- "required": [
- "Type",
- "Actions"
- ],
- "typeName": "AWS::Glue::Trigger"
-}
diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json
deleted file mode 100644
index 39009ea83f..0000000000
--- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json
+++ /dev/null
@@ -1,559 +0,0 @@
-{
- "additionalProperties": false,
- "createOnlyProperties": [
- "/properties/FunctionName"
- ],
- "definitions": {
- "Code": {
- "additionalProperties": false,
- "properties": {
- "ImageUri": {
- "type": "string"
- },
- "S3Bucket": {
- "maxLength": 63,
- "minLength": 3,
- "pattern": "^[0-9A-Za-z\\.\\-_]*(?
Date: Mon, 29 Jul 2024 09:28:19 -0700
Subject: [PATCH 2/2] Patch cleanrooms
---
...63a1bf4413531ad420ff60a5a0d7965d.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 +-
...7e4a4542365d35fd75466abcf306eeca.meta.json | 2 +-
...69b7533eabab32ecfc0a00cb19e55a5f.meta.json | 2 +-
...05f2567698dfdfa979bf0ccdb68cb856.meta.json | 2 +-
...92030ae5c03d7451980a15735e557edb.meta.json | 2 +-
...972142778e1ff452383ede2ad4bac3d7.meta.json | 2 +-
...26b315ef6f38515840537c02de23abe2.meta.json | 2 +-
...cf908a34e6b4c3fb3e97e2b584f651ca.meta.json | 2 +-
...318c41c71c21b0a17d4f68d82c5aee21.meta.json | 2 +-
...b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json | 2 +-
...b2d398fe33547eed780b9b70f10eb4a2.meta.json | 2 +-
...e50a1638ffe0a5dba0d8805c190a05f8.meta.json | 2 +-
.../__init__.py | 0
.../document.json | 20 +
.../providers/il_central_1/__init__.py | 2 +
.../il_central_1/aws-rds-dbcluster.json | 469 -------------
.../il_central_1/aws-rds-dbinstance.json | 620 ------------------
...aws-cleanrooms-idnamespaceassociation.json | 6 +-
.../providers/base.definition.schema.v1.json | 9 -
28 files changed, 48 insertions(+), 1120 deletions(-)
create mode 100644 src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/__init__.py
create mode 100644 src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/document.json
delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json
delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json
diff --git a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json
index c1beafe6ac..68bb0ad95a 100644
--- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json
@@ -1 +1 @@
-{"etag": "\"76e6272a2587962edab5fe0092ae5d20\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"8dff20f2547b17614c0ca8c0737ef4aa\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json
index 59fec71a11..cce05963a5 100644
--- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json
@@ -1 +1 @@
-{"etag": "\"2fd5167940dc6ccdf3016b67669e4e75\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"5cf2de12357fb26e07cd75f967d9dd62\"", "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 ad39b33a94..fb545b1416 100644
--- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json
@@ -1 +1 @@
-{"etag": "\"9045b19ac135db55e4462dee3e096c96\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"0c673fb0125ac7ab1c16e7f5323fb12c\"", "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 cc38cb1224..b649eed5db 100644
--- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json
@@ -1 +1 @@
-{"etag": "\"6790e073cf0243d7ea9af62a15173f1b\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"}
+{"etag": "\"b3a0c46a5463b1d21fa202572c0666d2\"", "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 b376387163..7b3f43332d 100644
--- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json
@@ -1 +1 @@
-{"etag": "\"315af9d9ac7057d355d964206c0edc07\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"c175c1d4956435c8f335399a09cc7b40\"", "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 440cb0a242..adbb177da2 100644
--- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json
@@ -1 +1 @@
-{"etag": "\"0d1a9e1e4c03b39f867a380310644b1d\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"1108f5dd3d5442b1bf4414a3b75c44fd\"", "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 a4ff8f5037..1d8a4d7878 100644
--- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json
@@ -1 +1 @@
-{"etag": "\"96dc879ab047c392e5b52437d231197f\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"1d59d59618edbf94a39715c366b07aab\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json
index 3531a68379..7fc0adddeb 100644
--- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json
@@ -1 +1 @@
-{"etag": "\"3a3f1c868665969b97549e63ae8f2f1c\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"ec50fb189b7930d3d5ab9229b4885fc8\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json
index 13069a2a8a..390b677382 100644
--- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json
@@ -1 +1 @@
-{"etag": "\"bf517629621d3a1e5307abe1a9c7ccdb\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"28b30b0cdf892d691489764164ddf89e\"", "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 ea23f7b0a5..8eab2b3965 100644
--- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json
@@ -1 +1 @@
-{"etag": "\"042fceea98c7d44b8d0283d7a57ab08a\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"017e36b0412c60eb79c860c77aedede8\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
index 75151d1f2e..428badec81 100644
--- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json
@@ -1 +1 @@
-{"etag": "\"96d7fc2b48cb9407e9e41ad65425efd0\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"65e29961bf999f93d0c1f0625551502a\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json
index 09cac50c21..9ffff4207d 100644
--- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json
@@ -1 +1 @@
-{"etag": "\"cdca2bd3dbca3a235b0055ab7a51e7e0\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a90c8fd480017948cb61a5a9128d7629\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
index 7e6fcbd435..62b499efea 100644
--- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json
@@ -1 +1 @@
-{"etag": "\"a6692e4d41a459a70ce983dc6b59b0f4\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a015375b2ea44f361e74cdebf76fa32f\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
index 24e9fac72b..dd8e1e181a 100644
--- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json
@@ -1 +1 @@
-{"etag": "\"e1fa083b7a43b20206695178368e9127\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"0cf3dbe4f709ebbd5f32abac8c0a5ddc\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
index 2c921b2406..66f1fa60b9 100644
--- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json
@@ -1 +1 @@
-{"etag": "\"778518d6523c8b730b73b2deb2b5fc16\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"6477d694133d0c3ac1a57317df14b230\"", "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 f92b469fe4..3e07644a63 100644
--- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json
@@ -1 +1 @@
-{"etag": "\"86304012fa2ed27891a61c26efa12b44\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"a776927e048fa2f69212e32ac09d4daa\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json
index bb861f0fd0..eca466c414 100644
--- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json
@@ -1 +1 @@
-{"etag": "\"443d3c78c2b5224f75af6c205b14c6a6\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"7358cc4367969670914be54b712a91de\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json
index 1f6c9b5bd6..1d8dbdf629 100644
--- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json
@@ -1 +1 @@
-{"etag": "\"f16accb62e86f691dd44ea64b20651ca\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"cdaf164fb6f371c5c8cced530ad17c26\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json
index f1619c54d3..33b013c7c0 100644
--- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json
@@ -1 +1 @@
-{"etag": "\"c7a243ab85e98d8caf524b08d0b24e64\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"b051c03bd63b339f49e15d71cd4e3981\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
index 728d77dbc2..a3e0a7217b 100644
--- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json
@@ -1 +1 @@
-{"etag": "\"5d734666dd49b9eca55de51bdfcff2dc\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"292a6e970989168ceee58a72611bed76\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
index 1df46708f8..4f4e7bb2f4 100644
--- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
+++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json
@@ -1 +1 @@
-{"etag": "\"581aee2ca97cf76fca8d8cc6e1e85e09\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"}
+{"etag": "\"5b8e3b435ad7ea563bda4020debe9287\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"}
diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/document.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/document.json
new file mode 100644
index 0000000000..4cc10af1b9
--- /dev/null
+++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cleanrooms_idnamespaceassociation/document.json
@@ -0,0 +1,20 @@
+[
+ {
+ "op": "test",
+ "path": "/definitions/Document",
+ "value": {
+ "type": "object"
+ }
+ },
+ {
+ "op": "replace",
+ "path": "/definitions/Document",
+ "value": {
+ "format": "json",
+ "type": [
+ "object",
+ "string"
+ ]
+ }
+ }
+]
diff --git a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py
index a1eda8efa5..d5db222645 100644
--- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py
+++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py
@@ -1054,7 +1054,9 @@
"aws-organizations-resourcepolicy.json",
"aws-ram-permission.json",
"aws-ram-resourceshare.json",
+ "aws-rds-dbcluster.json",
"aws-rds-dbclusterparametergroup.json",
+ "aws-rds-dbinstance.json",
"aws-rds-dbparametergroup.json",
"aws-rds-dbproxy.json",
"aws-rds-dbproxyendpoint.json",
diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json
deleted file mode 100644
index fc8608c49b..0000000000
--- a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json
+++ /dev/null
@@ -1,469 +0,0 @@
-{
- "additionalProperties": false,
- "conditionalCreateOnlyProperties": [
- "/properties/Engine",
- "/properties/GlobalClusterIdentifier",
- "/properties/MasterUsername"
- ],
- "createOnlyProperties": [
- "/properties/AvailabilityZones",
- "/properties/DBClusterIdentifier",
- "/properties/DBSubnetGroupName",
- "/properties/DBSystemId",
- "/properties/DatabaseName",
- "/properties/EngineMode",
- "/properties/KmsKeyId",
- "/properties/PubliclyAccessible",
- "/properties/RestoreToTime",
- "/properties/RestoreType",
- "/properties/SnapshotIdentifier",
- "/properties/SourceDBClusterIdentifier",
- "/properties/SourceRegion",
- "/properties/StorageEncrypted",
- "/properties/UseLatestRestorableTime"
- ],
- "definitions": {
- "DBClusterRole": {
- "additionalProperties": false,
- "properties": {
- "FeatureName": {
- "type": "string"
- },
- "RoleArn": {
- "type": "string"
- }
- },
- "required": [
- "RoleArn"
- ],
- "type": "object"
- },
- "Endpoint": {
- "additionalProperties": false,
- "properties": {
- "Address": {
- "type": "string"
- },
- "Port": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "MasterUserSecret": {
- "additionalProperties": false,
- "properties": {
- "KmsKeyId": {
- "type": "string"
- },
- "SecretArn": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "ReadEndpoint": {
- "additionalProperties": false,
- "properties": {
- "Address": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "ScalingConfiguration": {
- "additionalProperties": false,
- "properties": {
- "AutoPause": {
- "type": "boolean"
- },
- "MaxCapacity": {
- "type": "integer"
- },
- "MinCapacity": {
- "type": "integer"
- },
- "SecondsBeforeTimeout": {
- "type": "integer"
- },
- "SecondsUntilAutoPause": {
- "type": "integer"
- },
- "TimeoutAction": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "ServerlessV2ScalingConfiguration": {
- "additionalProperties": false,
- "properties": {
- "MaxCapacity": {
- "type": "number"
- },
- "MinCapacity": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "Tag": {
- "additionalProperties": false,
- "properties": {
- "Key": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "Value": {
- "maxLength": 256,
- "minLength": 0,
- "type": "string"
- }
- },
- "required": [
- "Key"
- ],
- "type": "object"
- }
- },
- "handlers": {
- "create": {
- "permissions": [
- "iam:CreateServiceLinkedRole",
- "iam:PassRole",
- "rds:AddRoleToDBCluster",
- "rds:AddTagsToResource",
- "rds:CreateDBCluster",
- "rds:CreateDBInstance",
- "rds:DescribeDBClusters",
- "rds:DescribeDBClusterSnapshots",
- "rds:DescribeDBSnapshots",
- "rds:DescribeEvents",
- "rds:EnableHttpEndpoint",
- "rds:ModifyDBCluster",
- "rds:RestoreDBClusterFromSnapshot",
- "rds:RestoreDBClusterToPointInTime",
- "secretsmanager:CreateSecret",
- "secretsmanager:TagResource"
- ],
- "timeoutInMinutes": 2160
- },
- "delete": {
- "permissions": [
- "rds:CreateDBClusterSnapshot",
- "rds:DeleteDBCluster",
- "rds:DeleteDBInstance",
- "rds:DescribeDBClusters",
- "rds:DescribeGlobalClusters",
- "rds:RemoveFromGlobalCluster"
- ]
- },
- "list": {
- "permissions": [
- "rds:DescribeDBClusters"
- ]
- },
- "read": {
- "permissions": [
- "rds:DescribeDBClusters"
- ]
- },
- "update": {
- "permissions": [
- "ec2:DescribeSecurityGroups",
- "iam:PassRole",
- "rds:AddRoleToDBCluster",
- "rds:AddTagsToResource",
- "rds:DescribeDBClusters",
- "rds:DescribeDBSubnetGroups",
- "rds:DescribeEvents",
- "rds:DescribeGlobalClusters",
- "rds:DisableHttpEndpoint",
- "rds:EnableHttpEndpoint",
- "rds:ModifyDBCluster",
- "rds:ModifyDBInstance",
- "rds:RemoveFromGlobalCluster",
- "rds:RemoveRoleFromDBCluster",
- "rds:RemoveTagsFromResource",
- "secretsmanager:CreateSecret",
- "secretsmanager:TagResource"
- ],
- "timeoutInMinutes": 2160
- }
- },
- "primaryIdentifier": [
- "/properties/DBClusterIdentifier"
- ],
- "properties": {
- "AllocatedStorage": {
- "type": "integer"
- },
- "AssociatedRoles": {
- "items": {
- "$ref": "#/definitions/DBClusterRole"
- },
- "type": "array",
- "uniqueItems": true
- },
- "AutoMinorVersionUpgrade": {
- "type": "boolean"
- },
- "AvailabilityZones": {
- "items": {
- "type": "string"
- },
- "type": "array",
- "uniqueItems": true
- },
- "BacktrackWindow": {
- "minimum": 0,
- "type": "integer"
- },
- "BackupRetentionPeriod": {
- "default": 1,
- "maximum": 35,
- "minimum": 1,
- "type": "integer"
- },
- "CopyTagsToSnapshot": {
- "type": "boolean"
- },
- "DBClusterArn": {
- "type": "string"
- },
- "DBClusterIdentifier": {
- "maxLength": 63,
- "minLength": 1,
- "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$",
- "type": "string"
- },
- "DBClusterInstanceClass": {
- "type": "string"
- },
- "DBClusterParameterGroupName": {
- "default": "default.aurora5.6",
- "type": "string"
- },
- "DBClusterResourceId": {
- "type": "string"
- },
- "DBInstanceParameterGroupName": {
- "type": "string"
- },
- "DBSubnetGroupName": {
- "type": "string"
- },
- "DBSystemId": {
- "type": "string"
- },
- "DatabaseName": {
- "type": "string"
- },
- "DeletionProtection": {
- "type": "boolean"
- },
- "Domain": {
- "type": "string"
- },
- "DomainIAMRoleName": {
- "type": "string"
- },
- "EnableCloudwatchLogsExports": {
- "items": {
- "type": "string"
- },
- "type": "array",
- "uniqueItems": true
- },
- "EnableGlobalWriteForwarding": {
- "type": "boolean"
- },
- "EnableHttpEndpoint": {
- "type": "boolean"
- },
- "EnableIAMDatabaseAuthentication": {
- "type": "boolean"
- },
- "EnableLocalWriteForwarding": {
- "type": "boolean"
- },
- "Endpoint": {
- "$ref": "#/definitions/Endpoint"
- },
- "Engine": {
- "type": "string"
- },
- "EngineLifecycleSupport": {
- "type": "string"
- },
- "EngineMode": {
- "type": "string"
- },
- "EngineVersion": {
- "type": "string"
- },
- "GlobalClusterIdentifier": {
- "maxLength": 63,
- "minLength": 0,
- "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$",
- "type": "string"
- },
- "Iops": {
- "type": "integer"
- },
- "KmsKeyId": {
- "type": "string"
- },
- "ManageMasterUserPassword": {
- "type": "boolean"
- },
- "MasterUserPassword": {
- "type": "string"
- },
- "MasterUserSecret": {
- "$ref": "#/definitions/MasterUserSecret"
- },
- "MasterUsername": {
- "minLength": 1,
- "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$",
- "type": "string"
- },
- "MonitoringInterval": {
- "default": 0,
- "type": "integer"
- },
- "MonitoringRoleArn": {
- "type": "string"
- },
- "NetworkType": {
- "type": "string"
- },
- "PerformanceInsightsEnabled": {
- "type": "boolean"
- },
- "PerformanceInsightsKmsKeyId": {
- "type": "string"
- },
- "PerformanceInsightsRetentionPeriod": {
- "type": "integer"
- },
- "Port": {
- "type": "integer"
- },
- "PreferredBackupWindow": {
- "type": "string"
- },
- "PreferredMaintenanceWindow": {
- "type": "string"
- },
- "PubliclyAccessible": {
- "type": "boolean"
- },
- "ReadEndpoint": {
- "$ref": "#/definitions/ReadEndpoint"
- },
- "ReplicationSourceIdentifier": {
- "type": "string"
- },
- "RestoreToTime": {
- "type": "string"
- },
- "RestoreType": {
- "default": "full-copy",
- "type": "string"
- },
- "ScalingConfiguration": {
- "$ref": "#/definitions/ScalingConfiguration"
- },
- "ServerlessV2ScalingConfiguration": {
- "$ref": "#/definitions/ServerlessV2ScalingConfiguration"
- },
- "SnapshotIdentifier": {
- "type": "string"
- },
- "SourceDBClusterIdentifier": {
- "type": "string"
- },
- "SourceRegion": {
- "type": "string"
- },
- "StorageEncrypted": {
- "type": "boolean"
- },
- "StorageThroughput": {
- "type": "integer"
- },
- "StorageType": {
- "type": "string"
- },
- "Tags": {
- "insertionOrder": false,
- "items": {
- "$ref": "#/definitions/Tag"
- },
- "maxItems": 50,
- "type": "array",
- "uniqueItems": true
- },
- "UseLatestRestorableTime": {
- "type": "boolean"
- },
- "VpcSecurityGroupIds": {
- "items": {
- "type": "string"
- },
- "type": "array",
- "uniqueItems": true
- }
- },
- "propertyTransform": {
- "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)",
- "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)",
- "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)",
- "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )",
- "/properties/Engine": "$lowercase(Engine)",
- "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])",
- "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])",
- "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])",
- "/properties/NetworkType": "$lowercase(NetworkType)",
- "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])",
- "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)",
- "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)",
- "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)",
- "/properties/StorageType": "$lowercase(StorageType)"
- },
- "readOnlyProperties": [
- "/properties/DBClusterArn",
- "/properties/DBClusterResourceId",
- "/properties/Endpoint",
- "/properties/Endpoint/Address",
- "/properties/Endpoint/Port",
- "/properties/ReadEndpoint/Address",
- "/properties/MasterUserSecret/SecretArn",
- "/properties/StorageThroughput"
- ],
- "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds",
- "tagging": {
- "cloudFormationSystemTags": true,
- "permissions": [
- "rds:AddTagsToResource",
- "rds:RemoveTagsFromResource"
- ],
- "tagOnCreate": true,
- "tagProperty": "/properties/Tags",
- "tagUpdatable": true,
- "taggable": true
- },
- "typeName": "AWS::RDS::DBCluster",
- "writeOnlyProperties": [
- "/properties/DBInstanceParameterGroupName",
- "/properties/MasterUserPassword",
- "/properties/RestoreToTime",
- "/properties/RestoreType",
- "/properties/SnapshotIdentifier",
- "/properties/SourceDBClusterIdentifier",
- "/properties/SourceRegion",
- "/properties/UseLatestRestorableTime"
- ]
-}
diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json
deleted file mode 100644
index 3263d77fb7..0000000000
--- a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json
+++ /dev/null
@@ -1,620 +0,0 @@
-{
- "additionalProperties": false,
- "conditionalCreateOnlyProperties": [
- "/properties/AutoMinorVersionUpgrade",
- "/properties/AvailabilityZone",
- "/properties/BackupRetentionPeriod",
- "/properties/DBClusterSnapshotIdentifier",
- "/properties/DBParameterGroupName",
- "/properties/DBSnapshotIdentifier",
- "/properties/Engine",
- "/properties/MultiAZ",
- "/properties/PerformanceInsightsKMSKeyId",
- "/properties/PreferredMaintenanceWindow",
- "/properties/RestoreTime",
- "/properties/SourceDBClusterIdentifier",
- "/properties/SourceDBInstanceAutomatedBackupsArn",
- "/properties/SourceDBInstanceIdentifier",
- "/properties/SourceDbiResourceId",
- "/properties/StorageType",
- "/properties/UseLatestRestorableTime"
- ],
- "createOnlyProperties": [
- "/properties/CharacterSetName",
- "/properties/CustomIAMInstanceProfile",
- "/properties/DBClusterIdentifier",
- "/properties/DBInstanceIdentifier",
- "/properties/DBName",
- "/properties/DBSubnetGroupName",
- "/properties/KmsKeyId",
- "/properties/MasterUsername",
- "/properties/NcharCharacterSetName",
- "/properties/Port",
- "/properties/SourceRegion",
- "/properties/StorageEncrypted",
- "/properties/Timezone"
- ],
- "definitions": {
- "CertificateDetails": {
- "additionalProperties": false,
- "properties": {
- "CAIdentifier": {
- "type": "string"
- },
- "ValidTill": {
- "format": "date-time",
- "type": "string"
- }
- },
- "type": "object"
- },
- "DBInstanceRole": {
- "additionalProperties": false,
- "properties": {
- "FeatureName": {
- "type": "string"
- },
- "RoleArn": {
- "type": "string"
- }
- },
- "required": [
- "FeatureName",
- "RoleArn"
- ],
- "type": "object"
- },
- "Endpoint": {
- "additionalProperties": false,
- "properties": {
- "Address": {
- "type": "string"
- },
- "HostedZoneId": {
- "type": "string"
- },
- "Port": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "MasterUserSecret": {
- "additionalProperties": false,
- "properties": {
- "KmsKeyId": {
- "type": "string"
- },
- "SecretArn": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "ProcessorFeature": {
- "additionalProperties": false,
- "properties": {
- "Name": {
- "enum": [
- "coreCount",
- "threadsPerCore"
- ],
- "type": "string"
- },
- "Value": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "Tag": {
- "additionalProperties": false,
- "properties": {
- "Key": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "Value": {
- "maxLength": 256,
- "minLength": 0,
- "type": "string"
- }
- },
- "required": [
- "Key"
- ],
- "type": "object"
- }
- },
- "dependencies": {
- "KmsKeyId": {
- "properties": {
- "StorageEncrypted": {
- "enum": [
- "true",
- "True",
- true
- ]
- }
- },
- "required": [
- "StorageEncrypted"
- ]
- }
- },
- "dependentExcluded": {
- "SourceDBInstanceIdentifier": [
- "CharacterSetName",
- "MasterUserPassword",
- "MasterUsername",
- "StorageEncrypted"
- ]
- },
- "deprecatedProperties": [
- "/properties/TdeCredentialArn",
- "/properties/TdeCredentialPassword"
- ],
- "handlers": {
- "create": {
- "permissions": [
- "ec2:DescribeAccountAttributes",
- "ec2:DescribeAvailabilityZones",
- "ec2:DescribeInternetGateways",
- "ec2:DescribeSecurityGroups",
- "ec2:DescribeSubnets",
- "ec2:DescribeVpcAttribute",
- "ec2:DescribeVpcs",
- "iam:CreateServiceLinkedRole",
- "iam:GetRole",
- "iam:ListRoles",
- "iam:PassRole",
- "kms:CreateGrant",
- "kms:DescribeKey",
- "rds:AddRoleToDBInstance",
- "rds:AddTagsToResource",
- "rds:CreateDBInstance",
- "rds:CreateDBInstanceReadReplica",
- "rds:DescribeDBInstances",
- "rds:DescribeDBClusters",
- "rds:DescribeDBClusterSnapshots",
- "rds:DescribeDBInstanceAutomatedBackups",
- "rds:DescribeDBSnapshots",
- "rds:DescribeEvents",
- "rds:ModifyDBInstance",
- "rds:RebootDBInstance",
- "rds:RestoreDBInstanceFromDBSnapshot",
- "rds:RestoreDBInstanceToPointInTime",
- "rds:StartDBInstanceAutomatedBackupsReplication",
- "secretsmanager:CreateSecret",
- "secretsmanager:TagResource"
- ],
- "timeoutInMinutes": 2160
- },
- "delete": {
- "permissions": [
- "rds:CreateDBSnapshot",
- "rds:DeleteDBInstance",
- "rds:DescribeDBInstances"
- ],
- "timeoutInMinutes": 2160
- },
- "list": {
- "permissions": [
- "rds:DescribeDBInstances"
- ]
- },
- "read": {
- "permissions": [
- "ec2:DescribeAccountAttributes",
- "ec2:DescribeAvailabilityZones",
- "ec2:DescribeInternetGateways",
- "ec2:DescribeSecurityGroups",
- "ec2:DescribeSubnets",
- "ec2:DescribeVpcAttribute",
- "ec2:DescribeVpcs",
- "rds:DescribeDBInstances"
- ]
- },
- "update": {
- "permissions": [
- "ec2:DescribeAccountAttributes",
- "ec2:DescribeAvailabilityZones",
- "ec2:DescribeInternetGateways",
- "ec2:DescribeSecurityGroups",
- "ec2:DescribeSubnets",
- "ec2:DescribeVpcAttribute",
- "ec2:DescribeVpcs",
- "iam:CreateServiceLinkedRole",
- "iam:GetRole",
- "iam:ListRoles",
- "iam:PassRole",
- "kms:CreateGrant",
- "kms:DescribeKey",
- "rds:AddRoleToDBInstance",
- "rds:AddTagsToResource",
- "rds:DescribeDBClusters",
- "rds:DescribeDBEngineVersions",
- "rds:DescribeDBInstances",
- "rds:DescribeDBParameterGroups",
- "rds:DescribeEvents",
- "rds:ModifyDBInstance",
- "rds:PromoteReadReplica",
- "rds:RebootDBInstance",
- "rds:RemoveRoleFromDBInstance",
- "rds:RemoveTagsFromResource",
- "rds:StartDBInstanceAutomatedBackupsReplication",
- "rds:StopDBInstanceAutomatedBackupsReplication",
- "secretsmanager:CreateSecret",
- "secretsmanager:TagResource"
- ],
- "timeoutInMinutes": 2160
- }
- },
- "primaryIdentifier": [
- "/properties/DBInstanceIdentifier"
- ],
- "properties": {
- "AllocatedStorage": {
- "pattern": "^[0-9]*$",
- "type": "string"
- },
- "AllowMajorVersionUpgrade": {
- "type": "boolean"
- },
- "AssociatedRoles": {
- "items": {
- "$ref": "#/definitions/DBInstanceRole"
- },
- "type": "array"
- },
- "AutoMinorVersionUpgrade": {
- "type": "boolean"
- },
- "AutomaticBackupReplicationKmsKeyId": {
- "type": "string"
- },
- "AutomaticBackupReplicationRegion": {
- "type": "string"
- },
- "AvailabilityZone": {
- "type": "string"
- },
- "BackupRetentionPeriod": {
- "default": 1,
- "maximum": 35,
- "minimum": 0,
- "type": "integer"
- },
- "CACertificateIdentifier": {
- "type": "string"
- },
- "CertificateDetails": {
- "$ref": "#/definitions/CertificateDetails"
- },
- "CertificateRotationRestart": {
- "type": "boolean"
- },
- "CharacterSetName": {
- "type": "string"
- },
- "CopyTagsToSnapshot": {
- "type": "boolean"
- },
- "CustomIAMInstanceProfile": {
- "type": "string"
- },
- "DBClusterIdentifier": {
- "type": "string"
- },
- "DBClusterSnapshotIdentifier": {
- "type": "string"
- },
- "DBInstanceArn": {
- "type": "string"
- },
- "DBInstanceClass": {
- "type": "string"
- },
- "DBInstanceIdentifier": {
- "maxLength": 63,
- "minLength": 1,
- "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$",
- "type": "string"
- },
- "DBName": {
- "type": "string"
- },
- "DBParameterGroupName": {
- "type": "string"
- },
- "DBSecurityGroups": {
- "items": {
- "type": "string"
- },
- "type": "array",
- "uniqueItems": true
- },
- "DBSnapshotIdentifier": {
- "type": "string"
- },
- "DBSubnetGroupName": {
- "type": "string"
- },
- "DBSystemId": {
- "type": "string"
- },
- "DbiResourceId": {
- "type": "string"
- },
- "DedicatedLogVolume": {
- "type": "boolean"
- },
- "DeleteAutomatedBackups": {
- "type": "boolean"
- },
- "DeletionProtection": {
- "type": "boolean"
- },
- "Domain": {
- "type": "string"
- },
- "DomainAuthSecretArn": {
- "type": "string"
- },
- "DomainDnsIps": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "DomainFqdn": {
- "type": "string"
- },
- "DomainIAMRoleName": {
- "type": "string"
- },
- "DomainOu": {
- "type": "string"
- },
- "EnableCloudwatchLogsExports": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "EnableIAMDatabaseAuthentication": {
- "type": "boolean"
- },
- "EnablePerformanceInsights": {
- "type": "boolean"
- },
- "Endpoint": {
- "$ref": "#/definitions/Endpoint"
- },
- "Engine": {
- "type": "string"
- },
- "EngineLifecycleSupport": {
- "type": "string"
- },
- "EngineVersion": {
- "type": "string"
- },
- "Iops": {
- "type": "integer"
- },
- "KmsKeyId": {
- "type": "string"
- },
- "LicenseModel": {
- "type": "string"
- },
- "ManageMasterUserPassword": {
- "type": "boolean"
- },
- "MasterUserPassword": {
- "type": "string"
- },
- "MasterUserSecret": {
- "$ref": "#/definitions/MasterUserSecret"
- },
- "MasterUsername": {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$",
- "type": "string"
- },
- "MaxAllocatedStorage": {
- "type": "integer"
- },
- "MonitoringInterval": {
- "default": 0,
- "type": "integer"
- },
- "MonitoringRoleArn": {
- "type": "string"
- },
- "MultiAZ": {
- "type": "boolean"
- },
- "NcharCharacterSetName": {
- "type": "string"
- },
- "NetworkType": {
- "type": "string"
- },
- "OptionGroupName": {
- "type": "string"
- },
- "PerformanceInsightsKMSKeyId": {
- "type": "string"
- },
- "PerformanceInsightsRetentionPeriod": {
- "enum": [
- 7,
- 31,
- 62,
- 93,
- 124,
- 155,
- 186,
- 217,
- 248,
- 279,
- 310,
- 341,
- 372,
- 403,
- 434,
- 465,
- 496,
- 527,
- 558,
- 589,
- 620,
- 651,
- 682,
- 713,
- 731
- ],
- "type": "integer"
- },
- "Port": {
- "pattern": "^\\d*$",
- "type": "string"
- },
- "PreferredBackupWindow": {
- "type": "string"
- },
- "PreferredMaintenanceWindow": {
- "type": "string"
- },
- "ProcessorFeatures": {
- "items": {
- "$ref": "#/definitions/ProcessorFeature"
- },
- "type": "array"
- },
- "PromotionTier": {
- "default": 1,
- "maximum": 15,
- "minimum": 0,
- "type": "integer"
- },
- "PubliclyAccessible": {
- "type": "boolean"
- },
- "ReplicaMode": {
- "type": "string"
- },
- "RestoreTime": {
- "format": "date-time",
- "type": "string"
- },
- "SourceDBClusterIdentifier": {
- "type": "string"
- },
- "SourceDBInstanceAutomatedBackupsArn": {
- "type": "string"
- },
- "SourceDBInstanceIdentifier": {
- "type": "string"
- },
- "SourceDbiResourceId": {
- "type": "string"
- },
- "SourceRegion": {
- "type": "string"
- },
- "StorageEncrypted": {
- "type": "boolean"
- },
- "StorageThroughput": {
- "type": "integer"
- },
- "StorageType": {
- "type": "string"
- },
- "Tags": {
- "insertionOrder": false,
- "items": {
- "$ref": "#/definitions/Tag"
- },
- "type": "array",
- "uniqueItems": false
- },
- "TdeCredentialArn": {
- "type": "string"
- },
- "TdeCredentialPassword": {
- "type": "string"
- },
- "Timezone": {
- "type": "string"
- },
- "UseDefaultProcessorFeatures": {
- "type": "boolean"
- },
- "UseLatestRestorableTime": {
- "type": "boolean"
- },
- "VPCSecurityGroups": {
- "items": {
- "type": "string"
- },
- "type": "array",
- "uniqueItems": true
- }
- },
- "propertyTransform": {
- "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)",
- "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)",
- "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)",
- "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)",
- "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)",
- "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)",
- "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)",
- "/properties/Engine": "$lowercase(Engine)",
- "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])",
- "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])",
- "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])",
- "/properties/NetworkType": "$lowercase(NetworkType)",
- "/properties/OptionGroupName": "$lowercase(OptionGroupName)",
- "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])",
- "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)",
- "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)",
- "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)",
- "/properties/StorageType": "$lowercase(StorageType)"
- },
- "readOnlyProperties": [
- "/properties/Endpoint/Address",
- "/properties/Endpoint/Port",
- "/properties/Endpoint/HostedZoneId",
- "/properties/DbiResourceId",
- "/properties/DBInstanceArn",
- "/properties/DBSystemId",
- "/properties/MasterUserSecret/SecretArn",
- "/properties/CertificateDetails/CAIdentifier",
- "/properties/CertificateDetails/ValidTill"
- ],
- "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
- "typeName": "AWS::RDS::DBInstance",
- "writeOnlyProperties": [
- "/properties/AllowMajorVersionUpgrade",
- "/properties/AutomaticBackupReplicationKmsKeyId",
- "/properties/CertificateRotationRestart",
- "/properties/DBSnapshotIdentifier",
- "/properties/DeleteAutomatedBackups",
- "/properties/MasterUserPassword",
- "/properties/Port",
- "/properties/RestoreTime",
- "/properties/SourceDBInstanceAutomatedBackupsArn",
- "/properties/SourceDBInstanceIdentifier",
- "/properties/SourceDbiResourceId",
- "/properties/SourceRegion",
- "/properties/TdeCredentialPassword",
- "/properties/UseDefaultProcessorFeatures",
- "/properties/UseLatestRestorableTime"
- ]
-}
diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-idnamespaceassociation.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-idnamespaceassociation.json
index 9d1d9ccc14..f0a3fc9b2b 100644
--- a/src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-idnamespaceassociation.json
+++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-cleanrooms-idnamespaceassociation.json
@@ -6,7 +6,11 @@
],
"definitions": {
"Document": {
- "type": "object"
+ "format": "json",
+ "type": [
+ "object",
+ "string"
+ ]
},
"IdMappingConfig": {
"additionalProperties": false,
diff --git a/test/fixtures/schemas/providers/base.definition.schema.v1.json b/test/fixtures/schemas/providers/base.definition.schema.v1.json
index 8edab6134f..c3b464bec6 100644
--- a/test/fixtures/schemas/providers/base.definition.schema.v1.json
+++ b/test/fixtures/schemas/providers/base.definition.schema.v1.json
@@ -78,15 +78,6 @@
{
"$comment": "The following subset of draft-07 property references is supported for resource definitions. Nested properties are disallowed and should be specified as a $ref to a definitions block.",
"type": ["object", "boolean"],
- "not": {
- "additionalProperties": false,
- "properties": {
- "type": {
- "const": "object"
- }
- },
- "required": ["type"]
- },
"properties": {
"insertionOrder": {
"description": "When set to true, this flag indicates that the order of insertion of the array will be honored, and that changing the order of the array would indicate a diff",