From 51560b0241e547266b1947116bad5fb9e2de6ea9 Mon Sep 17 00:00:00 2001 From: kddejong <36457093+kddejong@users.noreply.github.com> Date: Mon, 29 Jul 2024 06:37:33 +0000 Subject: [PATCH] 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 | 3 + .../il_central_1/aws-glue-trigger.json | 172 ----- .../il_central_1/aws-rds-dbcluster.json | 469 ------------ .../il_central_1/aws-rds-dbinstance.json | 620 ---------------- .../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 | 1 + .../us_gov_east_1/aws-glue-trigger.json | 172 ----- .../providers/us_gov_west_1/__init__.py | 6 + ...onalshift-zonalautoshiftconfiguration.json | 169 ----- .../aws-ec2-transitgatewayroutetable.json | 50 -- ...2-transitgatewayroutetableassociation.json | 29 - .../us_gov_west_1/aws-glue-trigger.json | 172 ----- .../schemas/providers/us_west_1/__init__.py | 1 + .../providers/us_west_1/aws-glue-trigger.json | 172 ----- .../schemas/providers/us_west_2/__init__.py | 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/il_central_1/aws-rds-dbcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.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_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..25c8d02ca0 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"b19fcd32eff148223b62a4148953b119\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"d233f95cd70c7032ce4fcb19adfe50a9\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json index b239a91b98..6bf83b62ef 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"061fcc4e5d7d49475ef727f277446802\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"31b76704eee77427deb2e389d4a7b581\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json index e40bf18419..68bb0ad95a 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"1eea87765e05e4fe0c54eae867b64baf\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"8dff20f2547b17614c0ca8c0737ef4aa\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json index 657dfeaf87..1570ccf03c 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"3571e7b68e8593f542e96b1fe9b56043\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"db2bc2a541e13b79a2ddd49deb5c76ef\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json index 8d2abfc246..21f5cc5c69 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"0fe3ad340ccb03c06292363e84dd5246\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"13b41df282b15a6af967a453c4c3772b\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json index 8f3f758396..0acb97e520 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"2e59ca52e0b29b76304f8aac77631d2a\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4214689261ae3f519fe439da29663950\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json index 3c0951c093..cc38cb1224 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"09adaeca3c99a11e03d10ae01d6b1362\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"6790e073cf0243d7ea9af62a15173f1b\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json index 4bdb72a25c..b376387163 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"dc24a194340be9e0c96baac963c8129e\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"315af9d9ac7057d355d964206c0edc07\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json index 19505b6611..ddab5bcff9 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"5f15349b97c3abf5883e58376652acff\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4242d8d004fcad5d707e66bead5b3c7c\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json index 65f4f6cc21..1d8a4d7878 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"733b9e73705a7cdef42ad28e7e5aed05\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1d59d59618edbf94a39715c366b07aab\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json index 9a981f9e8d..7fc0adddeb 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"5caa311a2432099f815a8578e08ddd65\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ec50fb189b7930d3d5ab9229b4885fc8\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json index f13a955cdd..6c03c03fb2 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"85a5a687a0eb9fc8b1de1c1038210408\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3f39076888a9f110f8b1575ecd8b80f7\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json index 999605e13b..8eab2b3965 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"4c7d6ce1da2d6f269637862184c4f1ec\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"017e36b0412c60eb79c860c77aedede8\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json index 08e003d816..081624294d 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"2ece9b6761f65207a718209f0a3292dc\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ea66e0e4d7a7aa49da215f00ce3a6a5d\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json index 2a64d418ef..428badec81 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"5625f354ee10e3d7a0ecc856b1c14995\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"65e29961bf999f93d0c1f0625551502a\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json index ec5a1871d9..9ffff4207d 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"32c817af301205e3593329ed9afdf5e7\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a90c8fd480017948cb61a5a9128d7629\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json index 920eb09d2c..0e57eab4dc 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"1ecbe028dc219b57affb8779e23c43bd\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9f3180dc3c31a517efe74bc506ee0866\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json index 1858a46cfb..62b499efea 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"0b3eb52c783248db6d6662c7a595426e\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a015375b2ea44f361e74cdebf76fa32f\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json index e7cbf9f58d..24e9fac72b 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"707e5da477848d380366e54cb284fa03\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e1fa083b7a43b20206695178368e9127\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json index 741115e473..5bebbf05be 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"44c5f3dddd70045c86f404818d37ed52\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"32ad94e2e9c662c3d3531a4a7fa45f3c\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json index 791be06335..23085fce3f 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"aa5e348b4f7132e252e9bd49c07b4ace\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5ca181c2dc03797dbacc2f4d10e57a87\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json index f4f74505da..b41d5621c0 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"6dfebdf907165e623ac7c6ae78f69e89\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9c8f8a7925cdf4254b626ca87bc3f712\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json index a21789cef9..2c921b2406 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"1d5fccf6e137b998472b6b1b8b6b87b5\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"778518d6523c8b730b73b2deb2b5fc16\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json index dfa279dc22..3e07644a63 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"6e633bde703434351ccd10984b6f089a\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a776927e048fa2f69212e32ac09d4daa\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json index ed2f4a5e2b..eca466c414 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"5f7f32e25bbcdf5f21fcf0254ff962ff\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7358cc4367969670914be54b712a91de\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json index ed90380c8a..1d8dbdf629 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"6192f56c4aa13f235ff9c99caaf673dd\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cdaf164fb6f371c5c8cced530ad17c26\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json index 4b269f7b44..f13687ec40 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"ec483e0222a4f80be7a780038e2071e4\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"790acf350bf1791bffa958bbbdd0a2b6\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json index e95ba9792f..33b013c7c0 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"009bc4e7f3fb6dbd5ef6cb62517d9493\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b051c03bd63b339f49e15d71cd4e3981\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json index 337dcdefd7..9314026de0 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"bf4182d4a20d8f80f97810b06ca54597\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0ef7eed995a8f8bf1861c81df3a407ec\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json index eeb5a3ddb6..a3e0a7217b 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"4bb1fc4b0d494484ae64308fbc3bbbcf\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"292a6e970989168ceee58a72611bed76\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json index 3f1da0f2d5..1df46708f8 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"1aa4602885a3fe30635853261c6e42c6\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"581aee2ca97cf76fca8d8cc6e1e85e09\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json index 0e9aa30814..fe304f97b4 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"efadb871cc9184c747a8a532df781be6\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a85e1c596370749f2b9129646aa9f7a4\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/Serverless/ManagedPolicies.json b/src/cfnlint/data/Serverless/ManagedPolicies.json index 48100fb15a..b0314147b6 100644 --- a/src/cfnlint/data/Serverless/ManagedPolicies.json +++ b/src/cfnlint/data/Serverless/ManagedPolicies.json @@ -964,6 +964,7 @@ "AmazonSageMakerCanvasBedrockAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasBedrockAccess", "AmazonSageMakerCanvasDataPrepFullAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasDataPrepFullAccess", "AmazonSageMakerCanvasDirectDeployAccess": "arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasDirectDeployAccess", + "AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy", "AmazonSageMakerCanvasForecastAccess": "arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasForecastAccess", "AmazonSageMakerCanvasFullAccess": "arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess", "AmazonSageMakerClusterInstanceRolePolicy": "arn:aws:iam::aws:policy/AmazonSageMakerClusterInstanceRolePolicy", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py index e8b0108515..e7a716c442 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -1223,6 +1223,7 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-groundstation-config.json", "aws-groundstation-dataflowendpointgroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py index f97c14d952..7f7599dd1a 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -1194,6 +1194,7 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py index 227ab6f7de..e1a195fcb4 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -498,6 +498,7 @@ "AWS::ElasticLoadBalancingV2::TrustStore", "AWS::ElasticLoadBalancingV2::TrustStoreRevocation", "AWS::Elasticsearch::Domain", + "AWS::EntityResolution::IdMappingWorkflow", "AWS::EntityResolution::IdNamespace", "AWS::EntityResolution::MatchingWorkflow", "AWS::EntityResolution::PolicyStatement", @@ -1378,12 +1379,7 @@ "aws-certificatemanager-certificate.json", "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-chatbot-slackchannelconfiguration.json", - "aws-cleanrooms-analysistemplate.json", "aws-cleanrooms-collaboration.json", - "aws-cleanrooms-configuredtable.json", - "aws-cleanrooms-configuredtableassociation.json", - "aws-cleanrooms-membership.json", - "aws-cleanrooms-privacybudgettemplate.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1720,6 +1716,7 @@ "aws-emr-walworkspace.json", "aws-emrcontainers-virtualcluster.json", "aws-emrserverless-application.json", + "aws-entityresolution-idmappingworkflow.json", "aws-entityresolution-idnamespace.json", "aws-entityresolution-matchingworkflow.json", "aws-entityresolution-policystatement.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json new file mode 100644 index 0000000000..f05f6d98ef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-analysistemplate.json @@ -0,0 +1,261 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MembershipIdentifier", + "/properties/Source", + "/properties/Source/Text", + "/properties/Format", + "/properties/AnalysisParameters" + ], + "definitions": { + "AnalysisParameter": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "[0-9a-zA-Z_]+", + "type": "string" + }, + "Type": { + "enum": [ + "SMALLINT", + "INTEGER", + "BIGINT", + "DECIMAL", + "REAL", + "DOUBLE_PRECISION", + "BOOLEAN", + "CHAR", + "VARCHAR", + "DATE", + "TIMESTAMP", + "TIMESTAMPTZ", + "TIME", + "TIMETZ", + "VARBYTE" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AnalysisSchema": { + "additionalProperties": false, + "properties": { + "ReferencedTables": { + "$ref": "#/definitions/ReferencedTables" + } + }, + "required": [ + "ReferencedTables" + ], + "type": "object" + }, + "AnalysisSource": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 15000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + }, + "ReferencedTables": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TableName" + }, + "minItems": 0, + "type": "array" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListAnalysisTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AnalysisTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "AnalysisParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisParameter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "AnalysisTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Arn": { + "maxLength": 200, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Format": { + "enum": [ + "SQL" + ], + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Schema": { + "$ref": "#/definitions/AnalysisSchema" + }, + "Source": { + "$ref": "#/definitions/AnalysisSource" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/AnalysisTemplateIdentifier", + "/properties/Schema", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "Source", + "Format", + "Name", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::AnalysisTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json new file mode 100644 index 0000000000..a693e37236 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtable.json @@ -0,0 +1,578 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AllowedColumns", + "/properties/AnalysisMethod", + "/properties/TableReference" + ], + "definitions": { + "AggregateColumn": { + "additionalProperties": false, + "properties": { + "ColumnNames": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "Function": { + "$ref": "#/definitions/AggregateFunctionName" + } + }, + "required": [ + "ColumnNames", + "Function" + ], + "type": "object" + }, + "AggregateFunctionName": { + "enum": [ + "SUM", + "SUM_DISTINCT", + "COUNT", + "COUNT_DISTINCT", + "AVG" + ], + "type": "string" + }, + "AggregationConstraint": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "Minimum": { + "maximum": 100000, + "minimum": 2, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/AggregationType" + } + }, + "required": [ + "ColumnName", + "Minimum", + "Type" + ], + "type": "object" + }, + "AggregationType": { + "enum": [ + "COUNT_DISTINCT" + ], + "type": "string" + }, + "AllowedAnalyses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysis" + }, + "minItems": 0, + "type": "array" + }, + "AllowedAnalysis": { + "maxLength": 200, + "minLength": 0, + "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)", + "type": "string" + }, + "AllowedAnalysisProvider": { + "maxLength": 12, + "minLength": 12, + "pattern": "\\d+", + "type": "string" + }, + "AllowedAnalysisProviders": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysisProvider" + }, + "minItems": 0, + "type": "array" + }, + "AnalysisMethod": { + "enum": [ + "DIRECT_QUERY" + ], + "type": "string" + }, + "AnalysisRule": { + "additionalProperties": false, + "properties": { + "Policy": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy" + }, + "Type": { + "$ref": "#/definitions/ConfiguredTableAnalysisRuleType" + } + }, + "required": [ + "Type", + "Policy" + ], + "type": "object" + }, + "AnalysisRuleAggregation": { + "additionalProperties": false, + "properties": { + "AggregateColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregateColumn" + }, + "minItems": 1, + "type": "array" + }, + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "DimensionColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinRequired": { + "$ref": "#/definitions/JoinRequiredOption" + }, + "OutputConstraints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregationConstraint" + }, + "minItems": 1, + "type": "array" + }, + "ScalarFunctions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ScalarFunctions" + }, + "type": "array" + } + }, + "required": [ + "AggregateColumns", + "JoinColumns", + "DimensionColumns", + "ScalarFunctions", + "OutputConstraints" + ], + "type": "object" + }, + "AnalysisRuleColumnName": { + "maxLength": 127, + "minLength": 1, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "AnalysisRuleCustom": { + "additionalProperties": false, + "properties": { + "AllowedAnalyses": { + "$ref": "#/definitions/AllowedAnalyses" + }, + "AllowedAnalysisProviders": { + "$ref": "#/definitions/AllowedAnalysisProviders" + }, + "DifferentialPrivacy": { + "$ref": "#/definitions/DifferentialPrivacy" + } + }, + "required": [ + "AllowedAnalyses" + ], + "type": "object" + }, + "AnalysisRuleList": { + "additionalProperties": false, + "properties": { + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "ListColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + } + }, + "required": [ + "JoinColumns", + "ListColumns" + ], + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicy": { + "additionalProperties": false, + "properties": { + "V1": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1" + } + }, + "required": [ + "V1" + ], + "title": "V1", + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicyV1": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "List": { + "$ref": "#/definitions/AnalysisRuleList" + } + }, + "required": [ + "List" + ], + "title": "List", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AnalysisRuleAggregation" + } + }, + "required": [ + "Aggregation" + ], + "title": "Aggregation", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Custom": { + "$ref": "#/definitions/AnalysisRuleCustom" + } + }, + "required": [ + "Custom" + ], + "title": "Custom", + "type": "object" + } + ] + }, + "ConfiguredTableAnalysisRuleType": { + "enum": [ + "AGGREGATION", + "LIST", + "CUSTOM" + ], + "type": "string" + }, + "DifferentialPrivacy": { + "additionalProperties": false, + "properties": { + "Columns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DifferentialPrivacyColumn" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Columns" + ], + "type": "object" + }, + "DifferentialPrivacyColumn": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "GlueTableReference": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "JoinOperator": { + "enum": [ + "OR", + "AND" + ], + "type": "string" + }, + "JoinRequiredOption": { + "enum": [ + "QUERY_RUNNER" + ], + "type": "string" + }, + "ScalarFunctions": { + "enum": [ + "TRUNC", + "ABS", + "CEILING", + "FLOOR", + "LN", + "LOG", + "ROUND", + "SQRT", + "CAST", + "LOWER", + "RTRIM", + "UPPER", + "COALESCE", + "CONVERT", + "CURRENT_DATE", + "DATEADD", + "EXTRACT", + "GETDATE", + "SUBSTRING", + "TO_CHAR", + "TO_DATE", + "TO_NUMBER", + "TO_TIMESTAMP", + "TRIM" + ], + "type": "string" + }, + "TableReference": { + "additionalProperties": false, + "properties": { + "Glue": { + "$ref": "#/definitions/GlueTableReference" + } + }, + "required": [ + "Glue" + ], + "title": "Glue", + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTable", + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListConfiguredTables" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:ListConfiguredTables", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListConfiguredTables" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:UpdateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableIdentifier" + ], + "properties": { + "AllowedColumns": { + "insertionOrder": false, + "items": { + "maxLength": 128, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + }, + "AnalysisMethod": { + "$ref": "#/definitions/AnalysisMethod" + }, + "AnalysisRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRule" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "TableReference": { + "$ref": "#/definitions/TableReference" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ConfiguredTableIdentifier" + ], + "required": [ + "AllowedColumns", + "AnalysisMethod", + "Name", + "TableReference" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTable" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json new file mode 100644 index 0000000000..cca50b13ee --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-configuredtableassociation.json @@ -0,0 +1,151 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfiguredTableIdentifier", + "/properties/Name", + "/properties/MembershipIdentifier" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableAssociationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/Arn" + ], + "required": [ + "ConfiguredTableIdentifier", + "Name", + "RoleArn", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTableAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json new file mode 100644 index 0000000000..0ebee0d0f7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-membership.json @@ -0,0 +1,257 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CollaborationIdentifier" + ], + "definitions": { + "MembershipPaymentConfiguration": { + "additionalProperties": false, + "properties": { + "QueryCompute": { + "$ref": "#/definitions/MembershipQueryComputePaymentConfig" + } + }, + "required": [ + "QueryCompute" + ], + "type": "object" + }, + "MembershipProtectedQueryOutputConfiguration": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "MembershipProtectedQueryResultConfiguration": { + "additionalProperties": false, + "properties": { + "OutputConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + } + }, + "required": [ + "OutputConfiguration" + ], + "type": "object" + }, + "MembershipQueryComputePaymentConfig": { + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ], + "type": "object" + }, + "MembershipQueryLogStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "MembershipStatus": { + "enum": [ + "ACTIVE", + "REMOVED", + "COLLABORATION_DELETED" + ], + "type": "string" + }, + "ProtectedQueryS3OutputConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "type": "string" + }, + "KeyPrefix": { + "type": "string" + }, + "ResultFormat": { + "$ref": "#/definitions/ResultFormat" + } + }, + "required": [ + "ResultFormat", + "Bucket" + ], + "type": "object" + }, + "ResultFormat": { + "enum": [ + "CSV", + "PARQUET" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListMemberships", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteMembership", + "cleanrooms:GetMembership", + "cleanrooms:ListMemberships", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListMemberships" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateMembership", + "cleanrooms:GetMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationCreatorAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "DefaultResultConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PaymentConfiguration": { + "$ref": "#/definitions/MembershipPaymentConfiguration" + }, + "QueryLogStatus": { + "$ref": "#/definitions/MembershipQueryLogStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CollaborationArn", + "/properties/CollaborationCreatorAccountId", + "/properties/MembershipIdentifier" + ], + "required": [ + "CollaborationIdentifier", + "QueryLogStatus" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::Membership" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json new file mode 100644 index 0000000000..62ba216d34 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-cleanrooms-privacybudgettemplate.json @@ -0,0 +1,179 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/PrivacyBudgetType", + "/properties/AutoRefresh" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreatePrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeletePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdatePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 200, + "type": "string" + }, + "AutoRefresh": { + "enum": [ + "CALENDAR_MONTH", + "NONE" + ], + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "Epsilon": { + "maximum": 20, + "minimum": 1, + "type": "integer" + }, + "UsersNoisePerQuery": { + "maximum": 100, + "minimum": 10, + "type": "integer" + } + }, + "required": [ + "Epsilon", + "UsersNoisePerQuery" + ], + "type": "object" + }, + "PrivacyBudgetTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PrivacyBudgetType": { + "enum": [ + "DIFFERENTIAL_PRIVACY" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "AutoRefresh", + "PrivacyBudgetType", + "Parameters", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py index beb2a8afed..dbaf6efa80 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1249,12 +1249,7 @@ "aws-certificatemanager-certificate.json", "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-chatbot-slackchannelconfiguration.json", - "aws-cleanrooms-analysistemplate.json", "aws-cleanrooms-collaboration.json", - "aws-cleanrooms-configuredtable.json", - "aws-cleanrooms-configuredtableassociation.json", - "aws-cleanrooms-membership.json", - "aws-cleanrooms-privacybudgettemplate.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1624,6 +1619,7 @@ "aws-glue-securityconfiguration.json", "aws-glue-table.json", "aws-glue-tableoptimizer.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-grafana-workspace.json", "aws-greengrass-connectordefinition.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json new file mode 100644 index 0000000000..f05f6d98ef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-analysistemplate.json @@ -0,0 +1,261 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MembershipIdentifier", + "/properties/Source", + "/properties/Source/Text", + "/properties/Format", + "/properties/AnalysisParameters" + ], + "definitions": { + "AnalysisParameter": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "[0-9a-zA-Z_]+", + "type": "string" + }, + "Type": { + "enum": [ + "SMALLINT", + "INTEGER", + "BIGINT", + "DECIMAL", + "REAL", + "DOUBLE_PRECISION", + "BOOLEAN", + "CHAR", + "VARCHAR", + "DATE", + "TIMESTAMP", + "TIMESTAMPTZ", + "TIME", + "TIMETZ", + "VARBYTE" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AnalysisSchema": { + "additionalProperties": false, + "properties": { + "ReferencedTables": { + "$ref": "#/definitions/ReferencedTables" + } + }, + "required": [ + "ReferencedTables" + ], + "type": "object" + }, + "AnalysisSource": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 15000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + }, + "ReferencedTables": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TableName" + }, + "minItems": 0, + "type": "array" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListAnalysisTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AnalysisTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "AnalysisParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisParameter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "AnalysisTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Arn": { + "maxLength": 200, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Format": { + "enum": [ + "SQL" + ], + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Schema": { + "$ref": "#/definitions/AnalysisSchema" + }, + "Source": { + "$ref": "#/definitions/AnalysisSource" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/AnalysisTemplateIdentifier", + "/properties/Schema", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "Source", + "Format", + "Name", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::AnalysisTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json new file mode 100644 index 0000000000..a693e37236 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtable.json @@ -0,0 +1,578 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AllowedColumns", + "/properties/AnalysisMethod", + "/properties/TableReference" + ], + "definitions": { + "AggregateColumn": { + "additionalProperties": false, + "properties": { + "ColumnNames": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "Function": { + "$ref": "#/definitions/AggregateFunctionName" + } + }, + "required": [ + "ColumnNames", + "Function" + ], + "type": "object" + }, + "AggregateFunctionName": { + "enum": [ + "SUM", + "SUM_DISTINCT", + "COUNT", + "COUNT_DISTINCT", + "AVG" + ], + "type": "string" + }, + "AggregationConstraint": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "Minimum": { + "maximum": 100000, + "minimum": 2, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/AggregationType" + } + }, + "required": [ + "ColumnName", + "Minimum", + "Type" + ], + "type": "object" + }, + "AggregationType": { + "enum": [ + "COUNT_DISTINCT" + ], + "type": "string" + }, + "AllowedAnalyses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysis" + }, + "minItems": 0, + "type": "array" + }, + "AllowedAnalysis": { + "maxLength": 200, + "minLength": 0, + "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)", + "type": "string" + }, + "AllowedAnalysisProvider": { + "maxLength": 12, + "minLength": 12, + "pattern": "\\d+", + "type": "string" + }, + "AllowedAnalysisProviders": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysisProvider" + }, + "minItems": 0, + "type": "array" + }, + "AnalysisMethod": { + "enum": [ + "DIRECT_QUERY" + ], + "type": "string" + }, + "AnalysisRule": { + "additionalProperties": false, + "properties": { + "Policy": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy" + }, + "Type": { + "$ref": "#/definitions/ConfiguredTableAnalysisRuleType" + } + }, + "required": [ + "Type", + "Policy" + ], + "type": "object" + }, + "AnalysisRuleAggregation": { + "additionalProperties": false, + "properties": { + "AggregateColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregateColumn" + }, + "minItems": 1, + "type": "array" + }, + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "DimensionColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinRequired": { + "$ref": "#/definitions/JoinRequiredOption" + }, + "OutputConstraints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregationConstraint" + }, + "minItems": 1, + "type": "array" + }, + "ScalarFunctions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ScalarFunctions" + }, + "type": "array" + } + }, + "required": [ + "AggregateColumns", + "JoinColumns", + "DimensionColumns", + "ScalarFunctions", + "OutputConstraints" + ], + "type": "object" + }, + "AnalysisRuleColumnName": { + "maxLength": 127, + "minLength": 1, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "AnalysisRuleCustom": { + "additionalProperties": false, + "properties": { + "AllowedAnalyses": { + "$ref": "#/definitions/AllowedAnalyses" + }, + "AllowedAnalysisProviders": { + "$ref": "#/definitions/AllowedAnalysisProviders" + }, + "DifferentialPrivacy": { + "$ref": "#/definitions/DifferentialPrivacy" + } + }, + "required": [ + "AllowedAnalyses" + ], + "type": "object" + }, + "AnalysisRuleList": { + "additionalProperties": false, + "properties": { + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "ListColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + } + }, + "required": [ + "JoinColumns", + "ListColumns" + ], + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicy": { + "additionalProperties": false, + "properties": { + "V1": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1" + } + }, + "required": [ + "V1" + ], + "title": "V1", + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicyV1": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "List": { + "$ref": "#/definitions/AnalysisRuleList" + } + }, + "required": [ + "List" + ], + "title": "List", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AnalysisRuleAggregation" + } + }, + "required": [ + "Aggregation" + ], + "title": "Aggregation", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Custom": { + "$ref": "#/definitions/AnalysisRuleCustom" + } + }, + "required": [ + "Custom" + ], + "title": "Custom", + "type": "object" + } + ] + }, + "ConfiguredTableAnalysisRuleType": { + "enum": [ + "AGGREGATION", + "LIST", + "CUSTOM" + ], + "type": "string" + }, + "DifferentialPrivacy": { + "additionalProperties": false, + "properties": { + "Columns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DifferentialPrivacyColumn" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Columns" + ], + "type": "object" + }, + "DifferentialPrivacyColumn": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "GlueTableReference": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "JoinOperator": { + "enum": [ + "OR", + "AND" + ], + "type": "string" + }, + "JoinRequiredOption": { + "enum": [ + "QUERY_RUNNER" + ], + "type": "string" + }, + "ScalarFunctions": { + "enum": [ + "TRUNC", + "ABS", + "CEILING", + "FLOOR", + "LN", + "LOG", + "ROUND", + "SQRT", + "CAST", + "LOWER", + "RTRIM", + "UPPER", + "COALESCE", + "CONVERT", + "CURRENT_DATE", + "DATEADD", + "EXTRACT", + "GETDATE", + "SUBSTRING", + "TO_CHAR", + "TO_DATE", + "TO_NUMBER", + "TO_TIMESTAMP", + "TRIM" + ], + "type": "string" + }, + "TableReference": { + "additionalProperties": false, + "properties": { + "Glue": { + "$ref": "#/definitions/GlueTableReference" + } + }, + "required": [ + "Glue" + ], + "title": "Glue", + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTable", + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListConfiguredTables" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:ListConfiguredTables", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListConfiguredTables" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:UpdateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableIdentifier" + ], + "properties": { + "AllowedColumns": { + "insertionOrder": false, + "items": { + "maxLength": 128, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + }, + "AnalysisMethod": { + "$ref": "#/definitions/AnalysisMethod" + }, + "AnalysisRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRule" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "TableReference": { + "$ref": "#/definitions/TableReference" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ConfiguredTableIdentifier" + ], + "required": [ + "AllowedColumns", + "AnalysisMethod", + "Name", + "TableReference" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTable" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json new file mode 100644 index 0000000000..cca50b13ee --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-configuredtableassociation.json @@ -0,0 +1,151 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfiguredTableIdentifier", + "/properties/Name", + "/properties/MembershipIdentifier" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableAssociationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/Arn" + ], + "required": [ + "ConfiguredTableIdentifier", + "Name", + "RoleArn", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTableAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json new file mode 100644 index 0000000000..0ebee0d0f7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-membership.json @@ -0,0 +1,257 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CollaborationIdentifier" + ], + "definitions": { + "MembershipPaymentConfiguration": { + "additionalProperties": false, + "properties": { + "QueryCompute": { + "$ref": "#/definitions/MembershipQueryComputePaymentConfig" + } + }, + "required": [ + "QueryCompute" + ], + "type": "object" + }, + "MembershipProtectedQueryOutputConfiguration": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "MembershipProtectedQueryResultConfiguration": { + "additionalProperties": false, + "properties": { + "OutputConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + } + }, + "required": [ + "OutputConfiguration" + ], + "type": "object" + }, + "MembershipQueryComputePaymentConfig": { + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ], + "type": "object" + }, + "MembershipQueryLogStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "MembershipStatus": { + "enum": [ + "ACTIVE", + "REMOVED", + "COLLABORATION_DELETED" + ], + "type": "string" + }, + "ProtectedQueryS3OutputConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "type": "string" + }, + "KeyPrefix": { + "type": "string" + }, + "ResultFormat": { + "$ref": "#/definitions/ResultFormat" + } + }, + "required": [ + "ResultFormat", + "Bucket" + ], + "type": "object" + }, + "ResultFormat": { + "enum": [ + "CSV", + "PARQUET" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListMemberships", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteMembership", + "cleanrooms:GetMembership", + "cleanrooms:ListMemberships", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListMemberships" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateMembership", + "cleanrooms:GetMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationCreatorAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "DefaultResultConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PaymentConfiguration": { + "$ref": "#/definitions/MembershipPaymentConfiguration" + }, + "QueryLogStatus": { + "$ref": "#/definitions/MembershipQueryLogStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CollaborationArn", + "/properties/CollaborationCreatorAccountId", + "/properties/MembershipIdentifier" + ], + "required": [ + "CollaborationIdentifier", + "QueryLogStatus" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::Membership" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json new file mode 100644 index 0000000000..62ba216d34 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cleanrooms-privacybudgettemplate.json @@ -0,0 +1,179 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/PrivacyBudgetType", + "/properties/AutoRefresh" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreatePrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeletePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdatePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 200, + "type": "string" + }, + "AutoRefresh": { + "enum": [ + "CALENDAR_MONTH", + "NONE" + ], + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "Epsilon": { + "maximum": 20, + "minimum": 1, + "type": "integer" + }, + "UsersNoisePerQuery": { + "maximum": 100, + "minimum": 10, + "type": "integer" + } + }, + "required": [ + "Epsilon", + "UsersNoisePerQuery" + ], + "type": "object" + }, + "PrivacyBudgetTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PrivacyBudgetType": { + "enum": [ + "DIFFERENTIAL_PRIVACY" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "AutoRefresh", + "PrivacyBudgetType", + "Parameters", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py index 713effb7ab..c9362356c4 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -1134,6 +1134,7 @@ "aws-glue-partition.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py index c1e3ff5cbf..4c6d3bc59d 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -1628,6 +1628,7 @@ "aws-glue-securityconfiguration.json", "aws-glue-table.json", "aws-glue-tableoptimizer.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-greengrass-connectordefinition.json", "aws-greengrass-connectordefinitionversion.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py index a3c62bd0a2..a5c83031d3 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -914,6 +914,7 @@ "aws-glue-partition.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py index fd43c37c1c..c90218ac93 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1347,12 +1347,7 @@ "aws-certificatemanager-certificate.json", "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-chatbot-slackchannelconfiguration.json", - "aws-cleanrooms-analysistemplate.json", "aws-cleanrooms-collaboration.json", - "aws-cleanrooms-configuredtable.json", - "aws-cleanrooms-configuredtableassociation.json", - "aws-cleanrooms-membership.json", - "aws-cleanrooms-privacybudgettemplate.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1753,6 +1748,7 @@ "aws-glue-securityconfiguration.json", "aws-glue-table.json", "aws-glue-tableoptimizer.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-grafana-workspace.json", "aws-greengrass-connectordefinition.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json new file mode 100644 index 0000000000..f05f6d98ef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-analysistemplate.json @@ -0,0 +1,261 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MembershipIdentifier", + "/properties/Source", + "/properties/Source/Text", + "/properties/Format", + "/properties/AnalysisParameters" + ], + "definitions": { + "AnalysisParameter": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "[0-9a-zA-Z_]+", + "type": "string" + }, + "Type": { + "enum": [ + "SMALLINT", + "INTEGER", + "BIGINT", + "DECIMAL", + "REAL", + "DOUBLE_PRECISION", + "BOOLEAN", + "CHAR", + "VARCHAR", + "DATE", + "TIMESTAMP", + "TIMESTAMPTZ", + "TIME", + "TIMETZ", + "VARBYTE" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AnalysisSchema": { + "additionalProperties": false, + "properties": { + "ReferencedTables": { + "$ref": "#/definitions/ReferencedTables" + } + }, + "required": [ + "ReferencedTables" + ], + "type": "object" + }, + "AnalysisSource": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 15000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + }, + "ReferencedTables": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TableName" + }, + "minItems": 0, + "type": "array" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListAnalysisTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AnalysisTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "AnalysisParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisParameter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "AnalysisTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Arn": { + "maxLength": 200, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Format": { + "enum": [ + "SQL" + ], + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Schema": { + "$ref": "#/definitions/AnalysisSchema" + }, + "Source": { + "$ref": "#/definitions/AnalysisSource" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/AnalysisTemplateIdentifier", + "/properties/Schema", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "Source", + "Format", + "Name", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::AnalysisTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json new file mode 100644 index 0000000000..a693e37236 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtable.json @@ -0,0 +1,578 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AllowedColumns", + "/properties/AnalysisMethod", + "/properties/TableReference" + ], + "definitions": { + "AggregateColumn": { + "additionalProperties": false, + "properties": { + "ColumnNames": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "Function": { + "$ref": "#/definitions/AggregateFunctionName" + } + }, + "required": [ + "ColumnNames", + "Function" + ], + "type": "object" + }, + "AggregateFunctionName": { + "enum": [ + "SUM", + "SUM_DISTINCT", + "COUNT", + "COUNT_DISTINCT", + "AVG" + ], + "type": "string" + }, + "AggregationConstraint": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "Minimum": { + "maximum": 100000, + "minimum": 2, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/AggregationType" + } + }, + "required": [ + "ColumnName", + "Minimum", + "Type" + ], + "type": "object" + }, + "AggregationType": { + "enum": [ + "COUNT_DISTINCT" + ], + "type": "string" + }, + "AllowedAnalyses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysis" + }, + "minItems": 0, + "type": "array" + }, + "AllowedAnalysis": { + "maxLength": 200, + "minLength": 0, + "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)", + "type": "string" + }, + "AllowedAnalysisProvider": { + "maxLength": 12, + "minLength": 12, + "pattern": "\\d+", + "type": "string" + }, + "AllowedAnalysisProviders": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysisProvider" + }, + "minItems": 0, + "type": "array" + }, + "AnalysisMethod": { + "enum": [ + "DIRECT_QUERY" + ], + "type": "string" + }, + "AnalysisRule": { + "additionalProperties": false, + "properties": { + "Policy": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy" + }, + "Type": { + "$ref": "#/definitions/ConfiguredTableAnalysisRuleType" + } + }, + "required": [ + "Type", + "Policy" + ], + "type": "object" + }, + "AnalysisRuleAggregation": { + "additionalProperties": false, + "properties": { + "AggregateColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregateColumn" + }, + "minItems": 1, + "type": "array" + }, + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "DimensionColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinRequired": { + "$ref": "#/definitions/JoinRequiredOption" + }, + "OutputConstraints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregationConstraint" + }, + "minItems": 1, + "type": "array" + }, + "ScalarFunctions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ScalarFunctions" + }, + "type": "array" + } + }, + "required": [ + "AggregateColumns", + "JoinColumns", + "DimensionColumns", + "ScalarFunctions", + "OutputConstraints" + ], + "type": "object" + }, + "AnalysisRuleColumnName": { + "maxLength": 127, + "minLength": 1, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "AnalysisRuleCustom": { + "additionalProperties": false, + "properties": { + "AllowedAnalyses": { + "$ref": "#/definitions/AllowedAnalyses" + }, + "AllowedAnalysisProviders": { + "$ref": "#/definitions/AllowedAnalysisProviders" + }, + "DifferentialPrivacy": { + "$ref": "#/definitions/DifferentialPrivacy" + } + }, + "required": [ + "AllowedAnalyses" + ], + "type": "object" + }, + "AnalysisRuleList": { + "additionalProperties": false, + "properties": { + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "ListColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + } + }, + "required": [ + "JoinColumns", + "ListColumns" + ], + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicy": { + "additionalProperties": false, + "properties": { + "V1": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1" + } + }, + "required": [ + "V1" + ], + "title": "V1", + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicyV1": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "List": { + "$ref": "#/definitions/AnalysisRuleList" + } + }, + "required": [ + "List" + ], + "title": "List", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AnalysisRuleAggregation" + } + }, + "required": [ + "Aggregation" + ], + "title": "Aggregation", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Custom": { + "$ref": "#/definitions/AnalysisRuleCustom" + } + }, + "required": [ + "Custom" + ], + "title": "Custom", + "type": "object" + } + ] + }, + "ConfiguredTableAnalysisRuleType": { + "enum": [ + "AGGREGATION", + "LIST", + "CUSTOM" + ], + "type": "string" + }, + "DifferentialPrivacy": { + "additionalProperties": false, + "properties": { + "Columns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DifferentialPrivacyColumn" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Columns" + ], + "type": "object" + }, + "DifferentialPrivacyColumn": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "GlueTableReference": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "JoinOperator": { + "enum": [ + "OR", + "AND" + ], + "type": "string" + }, + "JoinRequiredOption": { + "enum": [ + "QUERY_RUNNER" + ], + "type": "string" + }, + "ScalarFunctions": { + "enum": [ + "TRUNC", + "ABS", + "CEILING", + "FLOOR", + "LN", + "LOG", + "ROUND", + "SQRT", + "CAST", + "LOWER", + "RTRIM", + "UPPER", + "COALESCE", + "CONVERT", + "CURRENT_DATE", + "DATEADD", + "EXTRACT", + "GETDATE", + "SUBSTRING", + "TO_CHAR", + "TO_DATE", + "TO_NUMBER", + "TO_TIMESTAMP", + "TRIM" + ], + "type": "string" + }, + "TableReference": { + "additionalProperties": false, + "properties": { + "Glue": { + "$ref": "#/definitions/GlueTableReference" + } + }, + "required": [ + "Glue" + ], + "title": "Glue", + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTable", + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListConfiguredTables" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:ListConfiguredTables", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListConfiguredTables" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:UpdateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableIdentifier" + ], + "properties": { + "AllowedColumns": { + "insertionOrder": false, + "items": { + "maxLength": 128, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + }, + "AnalysisMethod": { + "$ref": "#/definitions/AnalysisMethod" + }, + "AnalysisRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRule" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "TableReference": { + "$ref": "#/definitions/TableReference" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ConfiguredTableIdentifier" + ], + "required": [ + "AllowedColumns", + "AnalysisMethod", + "Name", + "TableReference" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTable" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json new file mode 100644 index 0000000000..cca50b13ee --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-configuredtableassociation.json @@ -0,0 +1,151 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfiguredTableIdentifier", + "/properties/Name", + "/properties/MembershipIdentifier" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableAssociationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/Arn" + ], + "required": [ + "ConfiguredTableIdentifier", + "Name", + "RoleArn", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTableAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json new file mode 100644 index 0000000000..0ebee0d0f7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-membership.json @@ -0,0 +1,257 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CollaborationIdentifier" + ], + "definitions": { + "MembershipPaymentConfiguration": { + "additionalProperties": false, + "properties": { + "QueryCompute": { + "$ref": "#/definitions/MembershipQueryComputePaymentConfig" + } + }, + "required": [ + "QueryCompute" + ], + "type": "object" + }, + "MembershipProtectedQueryOutputConfiguration": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "MembershipProtectedQueryResultConfiguration": { + "additionalProperties": false, + "properties": { + "OutputConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + } + }, + "required": [ + "OutputConfiguration" + ], + "type": "object" + }, + "MembershipQueryComputePaymentConfig": { + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ], + "type": "object" + }, + "MembershipQueryLogStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "MembershipStatus": { + "enum": [ + "ACTIVE", + "REMOVED", + "COLLABORATION_DELETED" + ], + "type": "string" + }, + "ProtectedQueryS3OutputConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "type": "string" + }, + "KeyPrefix": { + "type": "string" + }, + "ResultFormat": { + "$ref": "#/definitions/ResultFormat" + } + }, + "required": [ + "ResultFormat", + "Bucket" + ], + "type": "object" + }, + "ResultFormat": { + "enum": [ + "CSV", + "PARQUET" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListMemberships", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteMembership", + "cleanrooms:GetMembership", + "cleanrooms:ListMemberships", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListMemberships" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateMembership", + "cleanrooms:GetMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationCreatorAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "DefaultResultConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PaymentConfiguration": { + "$ref": "#/definitions/MembershipPaymentConfiguration" + }, + "QueryLogStatus": { + "$ref": "#/definitions/MembershipQueryLogStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CollaborationArn", + "/properties/CollaborationCreatorAccountId", + "/properties/MembershipIdentifier" + ], + "required": [ + "CollaborationIdentifier", + "QueryLogStatus" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::Membership" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json new file mode 100644 index 0000000000..62ba216d34 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-cleanrooms-privacybudgettemplate.json @@ -0,0 +1,179 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/PrivacyBudgetType", + "/properties/AutoRefresh" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreatePrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeletePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdatePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 200, + "type": "string" + }, + "AutoRefresh": { + "enum": [ + "CALENDAR_MONTH", + "NONE" + ], + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "Epsilon": { + "maximum": 20, + "minimum": 1, + "type": "integer" + }, + "UsersNoisePerQuery": { + "maximum": 100, + "minimum": 10, + "type": "integer" + } + }, + "required": [ + "Epsilon", + "UsersNoisePerQuery" + ], + "type": "object" + }, + "PrivacyBudgetTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PrivacyBudgetType": { + "enum": [ + "DIFFERENTIAL_PRIVACY" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "AutoRefresh", + "PrivacyBudgetType", + "Parameters", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py index cd631ed3ec..ba997f3d5e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1373,12 +1373,7 @@ "aws-certificatemanager-certificate.json", "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-chatbot-slackchannelconfiguration.json", - "aws-cleanrooms-analysistemplate.json", "aws-cleanrooms-collaboration.json", - "aws-cleanrooms-configuredtable.json", - "aws-cleanrooms-configuredtableassociation.json", - "aws-cleanrooms-membership.json", - "aws-cleanrooms-privacybudgettemplate.json", "aws-cloud9-environmentec2.json", "aws-cloudformation-customresource.json", "aws-cloudformation-hookdefaultversion.json", @@ -1782,6 +1777,7 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-grafana-workspace.json", "aws-greengrass-connectordefinition.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json new file mode 100644 index 0000000000..f05f6d98ef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-analysistemplate.json @@ -0,0 +1,261 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MembershipIdentifier", + "/properties/Source", + "/properties/Source/Text", + "/properties/Format", + "/properties/AnalysisParameters" + ], + "definitions": { + "AnalysisParameter": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "[0-9a-zA-Z_]+", + "type": "string" + }, + "Type": { + "enum": [ + "SMALLINT", + "INTEGER", + "BIGINT", + "DECIMAL", + "REAL", + "DOUBLE_PRECISION", + "BOOLEAN", + "CHAR", + "VARCHAR", + "DATE", + "TIMESTAMP", + "TIMESTAMPTZ", + "TIME", + "TIMETZ", + "VARBYTE" + ], + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AnalysisSchema": { + "additionalProperties": false, + "properties": { + "ReferencedTables": { + "$ref": "#/definitions/ReferencedTables" + } + }, + "required": [ + "ReferencedTables" + ], + "type": "object" + }, + "AnalysisSource": { + "additionalProperties": false, + "properties": { + "Text": { + "maxLength": 15000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + }, + "ReferencedTables": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TableName" + }, + "minItems": 0, + "type": "array" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListAnalysisTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AnalysisTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "AnalysisParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisParameter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "AnalysisTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Arn": { + "maxLength": 200, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Format": { + "enum": [ + "SQL" + ], + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "Schema": { + "$ref": "#/definitions/AnalysisSchema" + }, + "Source": { + "$ref": "#/definitions/AnalysisSource" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/AnalysisTemplateIdentifier", + "/properties/Schema", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "Source", + "Format", + "Name", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::AnalysisTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json new file mode 100644 index 0000000000..a693e37236 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtable.json @@ -0,0 +1,578 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AllowedColumns", + "/properties/AnalysisMethod", + "/properties/TableReference" + ], + "definitions": { + "AggregateColumn": { + "additionalProperties": false, + "properties": { + "ColumnNames": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "Function": { + "$ref": "#/definitions/AggregateFunctionName" + } + }, + "required": [ + "ColumnNames", + "Function" + ], + "type": "object" + }, + "AggregateFunctionName": { + "enum": [ + "SUM", + "SUM_DISTINCT", + "COUNT", + "COUNT_DISTINCT", + "AVG" + ], + "type": "string" + }, + "AggregationConstraint": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "Minimum": { + "maximum": 100000, + "minimum": 2, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/AggregationType" + } + }, + "required": [ + "ColumnName", + "Minimum", + "Type" + ], + "type": "object" + }, + "AggregationType": { + "enum": [ + "COUNT_DISTINCT" + ], + "type": "string" + }, + "AllowedAnalyses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysis" + }, + "minItems": 0, + "type": "array" + }, + "AllowedAnalysis": { + "maxLength": 200, + "minLength": 0, + "pattern": "(ANY_QUERY|arn:[\\w]{3}:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)", + "type": "string" + }, + "AllowedAnalysisProvider": { + "maxLength": 12, + "minLength": 12, + "pattern": "\\d+", + "type": "string" + }, + "AllowedAnalysisProviders": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AllowedAnalysisProvider" + }, + "minItems": 0, + "type": "array" + }, + "AnalysisMethod": { + "enum": [ + "DIRECT_QUERY" + ], + "type": "string" + }, + "AnalysisRule": { + "additionalProperties": false, + "properties": { + "Policy": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicy" + }, + "Type": { + "$ref": "#/definitions/ConfiguredTableAnalysisRuleType" + } + }, + "required": [ + "Type", + "Policy" + ], + "type": "object" + }, + "AnalysisRuleAggregation": { + "additionalProperties": false, + "properties": { + "AggregateColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregateColumn" + }, + "minItems": 1, + "type": "array" + }, + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "DimensionColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + }, + "JoinRequired": { + "$ref": "#/definitions/JoinRequiredOption" + }, + "OutputConstraints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AggregationConstraint" + }, + "minItems": 1, + "type": "array" + }, + "ScalarFunctions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ScalarFunctions" + }, + "type": "array" + } + }, + "required": [ + "AggregateColumns", + "JoinColumns", + "DimensionColumns", + "ScalarFunctions", + "OutputConstraints" + ], + "type": "object" + }, + "AnalysisRuleColumnName": { + "maxLength": 127, + "minLength": 1, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "AnalysisRuleCustom": { + "additionalProperties": false, + "properties": { + "AllowedAnalyses": { + "$ref": "#/definitions/AllowedAnalyses" + }, + "AllowedAnalysisProviders": { + "$ref": "#/definitions/AllowedAnalysisProviders" + }, + "DifferentialPrivacy": { + "$ref": "#/definitions/DifferentialPrivacy" + } + }, + "required": [ + "AllowedAnalyses" + ], + "type": "object" + }, + "AnalysisRuleList": { + "additionalProperties": false, + "properties": { + "AllowedJoinOperators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/JoinOperator" + }, + "maxItems": 2, + "type": "array" + }, + "JoinColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "minItems": 1, + "type": "array" + }, + "ListColumns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + }, + "type": "array" + } + }, + "required": [ + "JoinColumns", + "ListColumns" + ], + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicy": { + "additionalProperties": false, + "properties": { + "V1": { + "$ref": "#/definitions/ConfiguredTableAnalysisRulePolicyV1" + } + }, + "required": [ + "V1" + ], + "title": "V1", + "type": "object" + }, + "ConfiguredTableAnalysisRulePolicyV1": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "List": { + "$ref": "#/definitions/AnalysisRuleList" + } + }, + "required": [ + "List" + ], + "title": "List", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AnalysisRuleAggregation" + } + }, + "required": [ + "Aggregation" + ], + "title": "Aggregation", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Custom": { + "$ref": "#/definitions/AnalysisRuleCustom" + } + }, + "required": [ + "Custom" + ], + "title": "Custom", + "type": "object" + } + ] + }, + "ConfiguredTableAnalysisRuleType": { + "enum": [ + "AGGREGATION", + "LIST", + "CUSTOM" + ], + "type": "string" + }, + "DifferentialPrivacy": { + "additionalProperties": false, + "properties": { + "Columns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DifferentialPrivacyColumn" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Columns" + ], + "type": "object" + }, + "DifferentialPrivacyColumn": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "GlueTableReference": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "TableName": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "JoinOperator": { + "enum": [ + "OR", + "AND" + ], + "type": "string" + }, + "JoinRequiredOption": { + "enum": [ + "QUERY_RUNNER" + ], + "type": "string" + }, + "ScalarFunctions": { + "enum": [ + "TRUNC", + "ABS", + "CEILING", + "FLOOR", + "LN", + "LOG", + "ROUND", + "SQRT", + "CAST", + "LOWER", + "RTRIM", + "UPPER", + "COALESCE", + "CONVERT", + "CURRENT_DATE", + "DATEADD", + "EXTRACT", + "GETDATE", + "SUBSTRING", + "TO_CHAR", + "TO_DATE", + "TO_NUMBER", + "TO_TIMESTAMP", + "TRIM" + ], + "type": "string" + }, + "TableReference": { + "additionalProperties": false, + "properties": { + "Glue": { + "$ref": "#/definitions/GlueTableReference" + } + }, + "required": [ + "Glue" + ], + "title": "Glue", + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTable", + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListConfiguredTables" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:ListConfiguredTables", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListConfiguredTables" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTable", + "cleanrooms:GetConfiguredTable", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:UpdateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableIdentifier" + ], + "properties": { + "AllowedColumns": { + "insertionOrder": false, + "items": { + "maxLength": 128, + "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" + }, + "AnalysisMethod": { + "$ref": "#/definitions/AnalysisMethod" + }, + "AnalysisRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisRule" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "Name": { + "maxLength": 100, + "minLength": 1, + "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", + "type": "string" + }, + "TableReference": { + "$ref": "#/definitions/TableReference" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ConfiguredTableIdentifier" + ], + "required": [ + "AllowedColumns", + "AnalysisMethod", + "Name", + "TableReference" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTable" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json new file mode 100644 index 0000000000..cca50b13ee --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-configuredtableassociation.json @@ -0,0 +1,151 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfiguredTableIdentifier", + "/properties/Name", + "/properties/MembershipIdentifier" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListConfiguredTableAssociations", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListConfiguredTableAssociations" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetConfiguredTableAssociation", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateConfiguredTableAssociation", + "cleanrooms:GetConfiguredTableAssociation", + "iam:PassRole", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "ConfiguredTableAssociationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "ConfiguredTableIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Description": { + "maxLength": 255, + "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Name": { + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + "type": "string" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ConfiguredTableAssociationIdentifier", + "/properties/Arn" + ], + "required": [ + "ConfiguredTableIdentifier", + "Name", + "RoleArn", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::ConfiguredTableAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json new file mode 100644 index 0000000000..0ebee0d0f7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-membership.json @@ -0,0 +1,257 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CollaborationIdentifier" + ], + "definitions": { + "MembershipPaymentConfiguration": { + "additionalProperties": false, + "properties": { + "QueryCompute": { + "$ref": "#/definitions/MembershipQueryComputePaymentConfig" + } + }, + "required": [ + "QueryCompute" + ], + "type": "object" + }, + "MembershipProtectedQueryOutputConfiguration": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "MembershipProtectedQueryResultConfiguration": { + "additionalProperties": false, + "properties": { + "OutputConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" + }, + "RoleArn": { + "maxLength": 512, + "minLength": 32, + "type": "string" + } + }, + "required": [ + "OutputConfiguration" + ], + "type": "object" + }, + "MembershipQueryComputePaymentConfig": { + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ], + "type": "object" + }, + "MembershipQueryLogStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "MembershipStatus": { + "enum": [ + "ACTIVE", + "REMOVED", + "COLLABORATION_DELETED" + ], + "type": "string" + }, + "ProtectedQueryS3OutputConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "type": "string" + }, + "KeyPrefix": { + "type": "string" + }, + "ResultFormat": { + "$ref": "#/definitions/ResultFormat" + } + }, + "required": [ + "ResultFormat", + "Bucket" + ], + "type": "object" + }, + "ResultFormat": { + "enum": [ + "CSV", + "PARQUET" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:ListMemberships", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteMembership", + "cleanrooms:GetMembership", + "cleanrooms:ListMemberships", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListMemberships" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateMembership", + "cleanrooms:GetMembership", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:PutResourcePolicy", + "logs:CreateLogGroup", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationCreatorAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^\\d+$", + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "DefaultResultConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PaymentConfiguration": { + "$ref": "#/definitions/MembershipPaymentConfiguration" + }, + "QueryLogStatus": { + "$ref": "#/definitions/MembershipQueryLogStatus" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CollaborationArn", + "/properties/CollaborationCreatorAccountId", + "/properties/MembershipIdentifier" + ], + "required": [ + "CollaborationIdentifier", + "QueryLogStatus" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::Membership" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json new file mode 100644 index 0000000000..62ba216d34 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-cleanrooms-privacybudgettemplate.json @@ -0,0 +1,179 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/PrivacyBudgetType", + "/properties/AutoRefresh" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreatePrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeletePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListPrivacyBudgetTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + }, + "permissions": [ + "cleanrooms:ListPrivacyBudgetTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdatePrivacyBudgetTemplate", + "cleanrooms:GetPrivacyBudgetTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "properties": { + "Arn": { + "maxLength": 200, + "type": "string" + }, + "AutoRefresh": { + "enum": [ + "CALENDAR_MONTH", + "NONE" + ], + "type": "string" + }, + "CollaborationArn": { + "maxLength": 100, + "type": "string" + }, + "CollaborationIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "MembershipArn": { + "maxLength": 100, + "type": "string" + }, + "MembershipIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "Epsilon": { + "maximum": 20, + "minimum": 1, + "type": "integer" + }, + "UsersNoisePerQuery": { + "maximum": 100, + "minimum": 10, + "type": "integer" + } + }, + "required": [ + "Epsilon", + "UsersNoisePerQuery" + ], + "type": "object" + }, + "PrivacyBudgetTemplateIdentifier": { + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + "type": "string" + }, + "PrivacyBudgetType": { + "enum": [ + "DIFFERENTIAL_PRIVACY" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/PrivacyBudgetTemplateIdentifier", + "/properties/Arn", + "/properties/MembershipArn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "AutoRefresh", + "PrivacyBudgetType", + "Parameters", + "MembershipIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CleanRooms::PrivacyBudgetTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py index 1bbc1aa727..e8367525b5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -1025,6 +1025,7 @@ "aws-glue-partition.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py index ac686537df..b87dc1354e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -900,6 +900,7 @@ "aws-glue-partition.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py index ab022a5653..37912cad67 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1585,6 +1585,7 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-greengrassv2-componentversion.json", "aws-greengrassv2-deployment.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py index 7f41fef2a7..b6ec2c6337 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -780,6 +780,7 @@ "aws-glue-partition.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py index 41c51ea53c..511b539928 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -1027,7 +1027,6 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", - "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-greengrass-connectordefinition.json", "aws-greengrass-connectordefinitionversion.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json similarity index 75% rename from src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json rename to src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json index 974dd89b9f..4afb3dd2ab 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-trigger.json @@ -109,8 +109,41 @@ "type": "object" } }, + "handlers": { + "create": { + "permissions": [ + "glue:CreateTrigger", + "glue:GetTrigger", + "glue:TagResource" + ] + }, + "delete": { + "permissions": [ + "glue:DeleteTrigger", + "glue:GetTrigger" + ] + }, + "list": { + "permissions": [ + "glue:ListTriggers" + ] + }, + "read": { + "permissions": [ + "glue:GetTrigger", + "glue:GetTags" + ] + }, + "update": { + "permissions": [ + "glue:UpdateTrigger", + "glue:UntagResource", + "glue:TagResource" + ] + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/Name" ], "properties": { "Actions": { @@ -126,9 +159,6 @@ "EventBatchingCondition": { "$ref": "#/definitions/EventBatchingCondition" }, - "Id": { - "type": "string" - }, "Name": { "type": "string" }, @@ -161,12 +191,20 @@ "type": "string" } }, - "readOnlyProperties": [ - "/properties/Id" - ], "required": [ "Type", "Actions" ], - "typeName": "AWS::Glue::Trigger" + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Glue::Trigger", + "writeOnlyProperties": [ + "/properties/StartOnCreation" + ] } diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py index b9cddf649d..d024b5820a 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -6,6 +6,7 @@ "AWS::ACMPCA::CertificateAuthority", "AWS::ACMPCA::CertificateAuthorityActivation", "AWS::ACMPCA::Permission", + "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", "AWS::AccessAnalyzer::Analyzer", "AWS::AmazonMQ::Broker", @@ -730,6 +731,8 @@ "aws-appsync-graphqlschema.json", "aws-appsync-resolver.json", "aws-appsync-sourceapiassociation.json", + "aws-arczonalshift-autoshiftobservernotificationstatus.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-athena-datacatalog.json", "aws-athena-namedquery.json", "aws-athena-preparedstatement.json", @@ -983,6 +986,7 @@ "aws-glue-schemaversionmetadata.json", "aws-glue-securityconfiguration.json", "aws-glue-table.json", + "aws-glue-trigger.json", "aws-glue-workflow.json", "aws-guardduty-detector.json", "aws-guardduty-filter.json", @@ -1058,6 +1062,7 @@ "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", + "aws-lambda-function.json", "aws-lambda-layerversion.json", "aws-lambda-layerversionpermission.json", "aws-lambda-permission.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json deleted file mode 100644 index 3bdd4887b2..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-arczonalshift-zonalautoshiftconfiguration.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "additionalProperties": false, - "allOf": [ - { - "allOf": [ - { - "required": [ - "ResourceIdentifier" - ] - } - ], - "anyOf": [ - { - "required": [ - "ZonalAutoshiftStatus" - ] - }, - { - "required": [ - "PracticeRunConfiguration" - ] - } - ] - } - ], - "createOnlyProperties": [ - "/properties/ResourceIdentifier" - ], - "definitions": { - "ControlCondition": { - "additionalProperties": false, - "properties": { - "AlarmIdentifier": { - "maxLength": 1024, - "minLength": 8, - "pattern": "^arn:.*$", - "type": "string" - }, - "Type": { - "$ref": "#/definitions/ControlConditionType" - } - }, - "required": [ - "AlarmIdentifier", - "Type" - ], - "type": "object" - }, - "ControlConditionType": { - "enum": [ - "CLOUDWATCH" - ], - "type": "string" - }, - "PracticeRunConfiguration": { - "additionalProperties": false, - "properties": { - "BlockedDates": { - "insertionOrder": false, - "items": { - "maxLength": 10, - "minLength": 10, - "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "type": "string" - }, - "maxItems": 15, - "minItems": 0, - "type": "array" - }, - "BlockedWindows": { - "insertionOrder": false, - "items": { - "maxLength": 19, - "minLength": 19, - "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}-(Mon|Tue|Wed|Thu|Fri|Sat|Sun):[0-9]{2}:[0-9]{2}$", - "type": "string" - }, - "maxItems": 15, - "minItems": 0, - "type": "array" - }, - "BlockingAlarms": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ControlCondition" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - "OutcomeAlarms": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ControlCondition" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "OutcomeAlarms" - ], - "type": "object" - }, - "ZonalAutoshiftStatus": { - "enum": [ - "ENABLED" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "arc-zonal-shift:CreatePracticeRunConfiguration", - "arc-zonal-shift:GetManagedResource", - "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", - "cloudwatch:DescribeAlarms", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "arc-zonal-shift:DeletePracticeRunConfiguration", - "arc-zonal-shift:GetManagedResource", - "arc-zonal-shift:UpdateZonalAutoshiftConfiguration" - ] - }, - "list": { - "permissions": [ - "arc-zonal-shift:ListManagedResources" - ] - }, - "read": { - "permissions": [ - "arc-zonal-shift:GetManagedResource" - ] - }, - "update": { - "permissions": [ - "arc-zonal-shift:GetManagedResource", - "arc-zonal-shift:UpdatePracticeRunConfiguration", - "arc-zonal-shift:UpdateZonalAutoshiftConfiguration", - "cloudwatch:DescribeAlarms" - ] - } - }, - "primaryIdentifier": [ - "/properties/ResourceIdentifier" - ], - "properties": { - "PracticeRunConfiguration": { - "$ref": "#/definitions/PracticeRunConfiguration" - }, - "ResourceIdentifier": { - "maxLength": 1024, - "minLength": 8, - "type": "string" - }, - "ZonalAutoshiftStatus": { - "$ref": "#/definitions/ZonalAutoshiftStatus" - } - }, - "tagging": { - "taggable": false - }, - "typeName": "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-trigger.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/WorkflowName", - "/properties/Type" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "Arguments": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Timeout": { - "type": "integer" - } - }, - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "properties": { - "CrawlState": { - "type": "string" - }, - "CrawlerName": { - "type": "string" - }, - "JobName": { - "type": "string" - }, - "LogicalOperator": { - "enum": [ - "EQUALS" - ], - "type": "string" - }, - "State": { - "enum": [ - "SUCCEEDED", - "STOPPED", - "TIMEOUT", - "FAILED" - ], - "type": "string" - } - }, - "type": "object" - }, - "EventBatchingCondition": { - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "BatchWindow": { - "type": "integer" - } - }, - "required": [ - "BatchSize" - ], - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - }, - "Predicate": { - "additionalProperties": false, - "properties": { - "Conditions": { - "items": { - "$ref": "#/definitions/Condition" - }, - "type": "array", - "uniqueItems": false - }, - "Logical": { - "enum": [ - "AND", - "ANY" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "EventBatchingCondition": { - "$ref": "#/definitions/EventBatchingCondition" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Predicate": { - "$ref": "#/definitions/Predicate" - }, - "Schedule": { - "type": "string" - }, - "StartOnCreation": { - "type": "boolean" - }, - "Tags": { - "format": "json", - "type": [ - "object", - "string" - ] - }, - "Type": { - "enum": [ - "CONDITIONAL", - "EVENT", - "ON_DEMAND", - "SCHEDULED" - ], - "type": "string" - }, - "WorkflowName": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Type", - "Actions" - ], - "typeName": "AWS::Glue::Trigger" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json deleted file mode 100644 index 39009ea83f..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json +++ /dev/null @@ -1,559 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/FunctionName" - ], - "definitions": { - "Code": { - "additionalProperties": false, - "properties": { - "ImageUri": { - "type": "string" - }, - "S3Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[0-9A-Za-z\\.\\-_]*(?