From ef333adfeed1985123bce7b267eae71bd7e55dc4 Mon Sep 17 00:00:00 2001 From: kddejong <36457093+kddejong@users.noreply.github.com> Date: Wed, 21 Aug 2024 06:29:53 +0000 Subject: [PATCH] Update CloudFormation schemas to 2024-08-21 --- docs/rules.md | 3 +- pyproject.toml | 2 +- .../data/AdditionalSpecs/Policies.json | 9 +- ...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 +- .../aws_ec2_instance/instancetype_enum.json | 264 +++ .../all/aws_codebuild_project/boto.json | 1 + .../schemas/providers/af_south_1/__init__.py | 9 +- .../aws-ec2-ipam.json | 3 - .../af_south_1/aws-ec2-securitygroup.json | 239 --- .../af_south_1/aws-ec2-subnetcidrblock.json | 78 - .../aws-ec2-vpccidrblock.json | 10 +- ...balaccelerator-crossaccountattachment.json | 123 -- .../af_south_1/aws-glue-database.json | 117 ++ .../af_south_1/aws-glue-trigger.json | 172 -- .../af_south_1/aws-rds-globalcluster.json | 99 ++ .../aws-systemsmanagersap-application.json | 161 -- .../schemas/providers/ap_east_1/__init__.py | 7 +- .../aws-ec2-ipam.json | 3 - .../ap_east_1/aws-ec2-securitygroup.json | 239 --- .../aws-ec2-vpccidrblock.json | 10 +- .../ap_east_1/aws-glue-database.json | 117 ++ .../providers/ap_east_1/aws-glue-trigger.json | 172 -- .../ap_east_1/aws-iam-managedpolicy.json | 147 -- .../aws-systemsmanagersap-application.json | 161 -- .../providers/ap_northeast_1/__init__.py | 13 +- .../aws-apigatewayv2-integration.json | 99 ++ .../aws-location-geofencecollection.json | 168 ++ .../ap_northeast_1/aws-rds-globalcluster.json | 99 ++ .../providers/ap_northeast_2/__init__.py | 19 +- .../aws-ec2-ipam.json | 3 - .../ap_northeast_2/aws-ec2-securitygroup.json | 239 --- .../aws-ec2-subnetcidrblock.json | 78 - .../aws-ec2-vpccidrblock.json | 10 +- .../ap_northeast_2/aws-glue-database.json | 117 ++ .../ap_northeast_2/aws-glue-trigger.json | 172 -- .../aws-ivs-channel.json | 10 +- .../aws-ivs-encoderconfiguration.json | 5 - .../aws-ivs-playbackkeypair.json | 5 - .../aws-ivs-playbackrestrictionpolicy.json | 5 - .../aws-ivs-recordingconfiguration.json | 5 - .../aws-ivs-stage.json | 44 +- .../aws-ivs-storageconfiguration.json | 5 - .../aws-ivs-streamkey.json | 5 - .../ap_northeast_2/aws-msk-replicator.json | 349 ++++ .../ap_northeast_2/aws-rds-globalcluster.json | 99 ++ .../ap_northeast_2/aws-synthetics-canary.json | 356 ++++ .../ap_northeast_2/aws-synthetics-group.json | 111 ++ .../aws-systemsmanagersap-application.json | 161 -- .../providers/ap_northeast_3/__init__.py | 9 +- .../ap_northeast_3/aws-ec2-ipam.json | 148 ++ .../ap_northeast_3/aws-ec2-securitygroup.json | 239 --- .../ap_northeast_3/aws-ec2-vpccidrblock.json | 103 ++ .../ap_northeast_3/aws-glue-database.json | 117 ++ .../ap_northeast_3/aws-glue-trigger.json | 172 -- .../ap_northeast_3/aws-iam-managedpolicy.json | 147 -- .../aws-medialive-multiplex.json | 0 .../aws-medialive-multiplexprogram.json | 0 .../aws-systemsmanagersap-application.json | 161 -- .../schemas/providers/ap_south_1/__init__.py | 13 +- .../ap_south_1/aws-ec2-vpccidrblock.json | 103 ++ .../ap_south_1/aws-glue-database.json | 117 ++ .../providers/ap_south_1/aws-ivs-channel.json | 148 ++ .../aws-ivs-encoderconfiguration.json | 136 ++ .../ap_south_1/aws-ivs-playbackkeypair.json | 110 ++ .../aws-ivs-playbackrestrictionpolicy.json | 123 ++ .../aws-ivs-recordingconfiguration.json | 255 +++ .../providers/ap_south_1/aws-ivs-stage.json | 106 ++ .../aws-ivs-storageconfiguration.json | 132 ++ .../ap_south_1/aws-ivs-streamkey.json | 117 ++ .../aws-lambda-eventsourcemapping.json | 359 ---- .../ap_south_1/aws-location-apikey.json | 226 +++ .../ap_south_1/aws-msk-replicator.json | 349 ++++ .../schemas/providers/ap_south_2/__init__.py | 10 +- .../aws-apigatewayv2-integration.json | 178 -- .../providers/ap_south_2/aws-ec2-ipam.json | 148 ++ .../ap_south_2/aws-ec2-securitygroup.json | 239 --- .../ap_south_2/aws-ec2-vpccidrblock.json | 103 ++ .../ap_south_2/aws-glue-database.json | 117 ++ .../ap_south_2/aws-glue-trigger.json | 172 -- .../ap_south_2/aws-rds-globalcluster.json | 99 ++ .../providers/ap_southeast_1/__init__.py | 5 +- .../ap_southeast_1/aws-codebuild-fleet.json | 159 ++ .../ap_southeast_1/aws-deadline-queue.json | 279 --- .../aws-deadline-storageprofile.json | 138 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../providers/ap_southeast_2/__init__.py | 9 +- .../aws-apigatewayv2-integration.json | 99 ++ .../aws-deadline-fleet.json | 1 + .../ap_southeast_2/aws-ec2-vpccidrblock.json | 103 ++ .../ap_southeast_2/aws-glue-database.json | 117 ++ .../ap_southeast_2/aws-iam-managedpolicy.json | 147 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../ap_southeast_2/aws-location-apikey.json | 226 +++ .../ap_southeast_2/aws-msk-replicator.json | 349 ++++ .../ap_southeast_2/aws-rds-globalcluster.json | 99 ++ .../providers/ap_southeast_3/__init__.py | 10 +- .../aws-apigatewayv2-integration.json | 178 -- .../aws-cognito-logdeliveryconfiguration.json | 118 -- .../ap_southeast_3/aws-cognito-userpool.json | 529 ------ .../ap_southeast_3/aws-ec2-ipam.json | 148 ++ .../aws-ec2-subnetcidrblock.json | 78 - .../ap_southeast_3/aws-ec2-vpccidrblock.json | 103 ++ .../ap_southeast_3/aws-glue-database.json | 117 ++ .../ap_southeast_3/aws-glue-trigger.json | 172 -- .../ap_southeast_3/aws-rds-globalcluster.json | 99 ++ .../aws-systemsmanagersap-application.json | 161 -- .../providers/ap_southeast_4/__init__.py | 8 +- .../aws-apigatewayv2-integration.json | 178 -- .../ap_southeast_4/aws-ec2-ipam.json | 148 ++ .../aws-ec2-subnetcidrblock.json | 78 - .../ap_southeast_4/aws-ec2-vpccidrblock.json | 103 ++ .../ap_southeast_4/aws-glue-database.json | 117 ++ .../ap_southeast_4/aws-glue-trigger.json | 172 -- .../aws-lambda-function.json | 21 +- .../ap_southeast_4/aws-rds-globalcluster.json | 99 ++ .../providers/ca_central_1/__init__.py | 10 +- .../aws-apigatewayv2-integration.json | 99 ++ .../providers/ca_central_1/aws-ec2-ipam.json | 148 ++ .../ca_central_1/aws-ec2-securitygroup.json | 239 --- .../ca_central_1/aws-ec2-vpccidrblock.json | 103 ++ .../ca_central_1/aws-glue-database.json | 117 ++ .../ca_central_1/aws-glue-trigger.json | 172 -- .../ca_central_1/aws-iam-managedpolicy.json | 147 -- .../ca_central_1/aws-location-apikey.json | 226 +++ .../ca_central_1/aws-msk-replicator.json | 349 ++++ .../ca_central_1/aws-rds-globalcluster.json | 99 ++ .../schemas/providers/ca_west_1/__init__.py | 12 +- .../aws-apigatewayv2-integration.json | 178 -- .../aws-cognito-logdeliveryconfiguration.json | 118 -- .../ca_west_1/aws-cognito-userpool.json | 529 ------ .../providers/ca_west_1/aws-ec2-ipam.json | 148 ++ .../ca_west_1/aws-ec2-vpccidrblock.json | 103 ++ .../ca_west_1/aws-glue-database.json | 117 ++ .../aws-iam-managedpolicy.json | 1 + .../aws-lambda-function.json | 21 +- .../schemas/providers/cn_north_1/__init__.py | 7 +- .../aws-apigatewayv2-integration.json | 99 ++ .../cn_north_1/aws-apigatewayv2-vpclink.json | 102 -- .../cn_north_1/aws-glue-database.json | 117 ++ .../cn_north_1/aws-iam-managedpolicy.json | 149 -- .../providers/cn_north_1/aws-s3-bucket.json | 1561 ----------------- .../providers/cn_northwest_1/__init__.py | 6 - .../aws-apigatewayv2-integration.json | 99 ++ .../cn_northwest_1/aws-ec2-ipam.json | 148 ++ .../cn_northwest_1/aws-ec2-vpccidrblock.json | 103 ++ .../cn_northwest_1/aws-glue-database.json | 117 ++ .../cn_northwest_1/aws-lambda-function.json | 552 ++++++ .../cn_northwest_1/aws-rds-globalcluster.json | 99 ++ .../providers/eu_central_1/__init__.py | 12 +- .../eu_central_1/aws-codebuild-fleet.json | 159 ++ .../eu_central_1/aws-iam-managedpolicy.json | 149 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../eu_central_1/aws-location-apikey.json | 226 +++ .../eu_central_1/aws-msk-replicator.json | 373 ++++ .../eu_central_1/aws-quicksight-dataset.json | 1410 +++++++++++++++ .../aws-quicksight-datasource.json | 984 +++++++++++ .../providers/eu_central_1/aws-s3-bucket.json | 1561 ----------------- .../providers/eu_central_2/__init__.py | 6 +- .../aws-apigatewayv2-integration.json | 178 -- .../providers/eu_central_2/aws-ec2-ipam.json | 148 ++ .../eu_central_2/aws-ec2-vpccidrblock.json | 103 ++ .../eu_central_2/aws-glue-database.json | 117 ++ .../eu_central_2/aws-lambda-function.json | 552 ++++++ .../eu_central_2/aws-rds-globalcluster.json | 99 ++ .../schemas/providers/eu_north_1/__init__.py | 9 +- .../providers/eu_north_1/aws-ec2-ipam.json | 148 ++ .../eu_north_1/aws-ec2-securitygroup.json | 239 --- .../eu_north_1/aws-ec2-vpccidrblock.json | 103 ++ .../eu_north_1/aws-glue-database.json | 117 ++ .../eu_north_1/aws-glue-trigger.json | 172 -- .../eu_north_1/aws-iam-managedpolicy.json | 147 -- .../eu_north_1/aws-location-apikey.json | 226 +++ .../eu_north_1/aws-msk-replicator.json | 349 ++++ .../aws-systemsmanagersap-application.json | 161 -- .../schemas/providers/eu_south_1/__init__.py | 11 +- .../providers/eu_south_1/aws-ec2-ipam.json | 148 ++ .../eu_south_1/aws-ec2-securitygroup.json | 239 --- .../eu_south_1/aws-ec2-subnetcidrblock.json | 78 - .../eu_south_1/aws-ec2-vpccidrblock.json | 103 ++ .../eu_south_1/aws-glue-database.json | 117 ++ .../eu_south_1/aws-glue-trigger.json | 172 -- .../eu_south_1/aws-rds-globalcluster.json | 99 ++ .../aws-systemsmanagersap-application.json | 161 -- .../schemas/providers/eu_south_2/__init__.py | 8 +- .../aws-apigatewayv2-integration.json | 178 -- .../providers/eu_south_2/aws-ec2-ipam.json | 148 ++ .../eu_south_2/aws-ec2-vpccidrblock.json | 103 ++ .../eu_south_2/aws-glue-database.json | 117 ++ .../eu_south_2/aws-glue-trigger.json | 172 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../eu_south_2/aws-lambda-function.json | 552 ++++++ .../eu_south_2/aws-rds-globalcluster.json | 99 ++ .../schemas/providers/eu_west_1/__init__.py | 9 +- .../eu_west_1/aws-codebuild-fleet.json | 159 ++ .../providers/eu_west_1/aws-ec2-ipam.json | 148 ++ .../eu_west_1/aws-ec2-vpccidrblock.json | 103 ++ .../eu_west_1/aws-glue-database.json | 117 ++ .../eu_west_1/aws-iam-managedpolicy.json | 147 -- .../providers/eu_west_1/aws-s3-bucket.json | 1561 ----------------- .../schemas/providers/eu_west_2/__init__.py | 8 +- .../providers/eu_west_2/aws-ec2-ipam.json | 148 ++ .../eu_west_2/aws-ec2-securitygroup.json | 239 --- .../eu_west_2/aws-ec2-vpccidrblock.json | 103 ++ .../eu_west_2/aws-glue-database.json | 117 ++ .../providers/eu_west_2/aws-glue-trigger.json | 172 -- .../eu_west_2/aws-iam-managedpolicy.json | 147 -- .../eu_west_2/aws-location-apikey.json | 226 +++ .../eu_west_2/aws-msk-replicator.json | 349 ++++ .../schemas/providers/eu_west_3/__init__.py | 9 +- .../providers/eu_west_3/aws-ec2-ipam.json | 148 ++ .../eu_west_3/aws-ec2-securitygroup.json | 239 --- .../eu_west_3/aws-ec2-subnetcidrblock.json | 78 - .../eu_west_3/aws-ec2-vpccidrblock.json | 103 ++ .../eu_west_3/aws-glue-database.json | 117 ++ .../providers/eu_west_3/aws-glue-trigger.json | 172 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../eu_west_3/aws-msk-replicator.json | 349 ++++ .../eu_west_3/aws-rds-globalcluster.json | 99 ++ .../providers/il_central_1/__init__.py | 7 +- .../aws-apigatewayv2-integration.json | 178 -- .../providers/il_central_1/aws-ec2-ipam.json | 148 ++ .../il_central_1/aws-ec2-vpccidrblock.json | 103 ++ .../il_central_1/aws-glue-database.json | 117 ++ .../il_central_1/aws-glue-trigger.json | 172 -- .../il_central_1/aws-lambda-function.json | 552 ++++++ .../il_central_1/aws-rds-globalcluster.json | 99 ++ .../providers/me_central_1/__init__.py | 9 +- .../providers/me_central_1/aws-ec2-ipam.json | 148 ++ .../me_central_1/aws-ec2-securitygroup.json | 239 --- .../me_central_1/aws-ec2-vpccidrblock.json | 103 ++ .../me_central_1/aws-glue-database.json | 117 ++ .../me_central_1/aws-glue-trigger.json | 172 -- .../me_central_1/aws-iam-managedpolicy.json | 147 -- .../me_central_1/aws-rds-globalcluster.json | 99 ++ .../schemas/providers/me_south_1/__init__.py | 8 +- .../providers/me_south_1/aws-ec2-ipam.json | 148 ++ .../me_south_1/aws-ec2-securitygroup.json | 239 --- .../me_south_1/aws-ec2-subnetcidrblock.json | 78 - .../me_south_1/aws-ec2-vpccidrblock.json | 103 ++ .../me_south_1/aws-glue-database.json | 117 ++ .../me_south_1/aws-glue-trigger.json | 172 -- .../me_south_1/aws-rds-globalcluster.json | 99 ++ .../aws-systemsmanagersap-application.json | 161 -- .../schemas/providers/sa_east_1/__init__.py | 5 +- .../sa_east_1/aws-ec2-vpccidrblock.json | 103 ++ .../sa_east_1/aws-iam-managedpolicy.json | 147 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../sa_east_1/aws-location-apikey.json | 226 +++ .../sa_east_1/aws-msk-replicator.json | 349 ++++ .../schemas/providers/us_east_1/__init__.py | 1 + .../aws-apigatewayv2-integration.json | 115 +- .../us_east_1/aws-codebuild-project.json | 1 + .../us_east_1/aws-deadline-fleet.json | 3 +- .../providers/us_east_1/aws-ec2-ipam.json | 3 + .../us_east_1/aws-ec2-vpccidrblock.json | 10 +- .../us_east_1/aws-glue-database.json | 68 +- .../us_east_1/aws-iam-managedpolicy.json | 1 + .../providers/us_east_1/aws-ivs-channel.json | 10 +- .../aws-ivs-encoderconfiguration.json | 5 + .../us_east_1/aws-ivs-playbackkeypair.json | 5 + .../aws-ivs-playbackrestrictionpolicy.json | 5 + .../us_east_1/aws-ivs-publickey.json | 113 ++ .../aws-ivs-recordingconfiguration.json | 5 + .../providers/us_east_1/aws-ivs-stage.json | 44 +- .../aws-ivs-storageconfiguration.json | 5 + .../us_east_1/aws-ivs-streamkey.json | 5 + .../us_east_1/aws-lambda-function.json | 21 +- .../us_east_1/aws-location-apikey.json | 4 +- .../us_east_1/aws-msk-replicator.json | 8 +- .../us_east_1/aws-rds-globalcluster.json | 2 + .../providers/us_east_1/aws-s3-bucket.json | 20 - .../schemas/providers/us_east_2/__init__.py | 11 +- .../aws-apigatewayv2-integration.json | 99 ++ .../us_east_2/aws-deadline-fleet.json | 587 +++++++ .../providers/us_east_2/aws-ec2-ipam.json | 148 ++ .../us_east_2/aws-ec2-securitygroup.json | 239 --- .../us_east_2/aws-ec2-vpccidrblock.json | 103 ++ .../us_east_2/aws-glue-database.json | 117 ++ .../providers/us_east_2/aws-glue-trigger.json | 172 -- .../us_east_2/aws-iam-managedpolicy.json | 147 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../us_east_2/aws-msk-replicator.json | 349 ++++ .../us_east_2/aws-rds-globalcluster.json | 99 ++ .../providers/us_gov_east_1/__init__.py | 7 +- .../aws-apigatewayv2-integration.json | 99 ++ .../us_gov_east_1/aws-codebuild-project.json | 1 + .../aws-codepipeline-pipeline.json | 355 ---- .../providers/us_gov_east_1/aws-ec2-ipam.json | 148 ++ .../aws-ec2-subnetcidrblock.json | 78 - .../us_gov_east_1/aws-ec2-vpccidrblock.json | 103 ++ .../us_gov_east_1/aws-glue-database.json | 117 ++ .../us_gov_east_1/aws-lambda-function.json | 552 ++++++ .../providers/us_gov_west_1/__init__.py | 22 +- .../aws-apigatewayv2-integration.json | 99 ++ .../us_gov_west_1/aws-codebuild-project.json | 1 + .../aws-codepipeline-pipeline.json | 505 ------ .../providers/us_gov_west_1/aws-ec2-ipam.json | 148 ++ .../us_gov_west_1/aws-ec2-vpccidrblock.json | 103 ++ .../us_gov_west_1/aws-glue-database.json | 117 ++ .../us_gov_west_1/aws-lambda-function.json | 552 ++++++ .../us_gov_west_1/aws-redshift-cluster.json | 330 ---- .../aws-redshift-clustersubnetgroup.json | 158 -- .../aws-redshift-eventsubscription.json | 181 -- .../aws-redshift-scheduledaction.json | 188 -- .../schemas/providers/us_west_1/__init__.py | 10 +- .../aws-apigatewayv2-integration.json | 99 ++ .../providers/us_west_1/aws-ec2-ipam.json | 148 ++ .../us_west_1/aws-ec2-securitygroup.json | 239 --- .../us_west_1/aws-ec2-vpccidrblock.json | 103 ++ .../us_west_1/aws-glue-database.json | 117 ++ .../providers/us_west_1/aws-glue-trigger.json | 172 -- .../us_west_1/aws-iam-managedpolicy.json | 147 -- .../aws-lambda-eventsourcemapping.json | 359 ---- .../us_west_1/aws-msk-replicator.json | 349 ++++ .../us_west_1/aws-rds-globalcluster.json | 99 ++ .../schemas/providers/us_west_2/__init__.py | 9 +- .../us_west_2/aws-codebuild-fleet.json | 159 ++ .../us_west_2/aws-iam-managedpolicy.json | 149 -- .../aws-location-geofencecollection.json | 168 ++ .../us_west_2/aws-msk-replicator.json | 373 ++++ .../providers/us_west_2/aws-s3-bucket.json | 1561 ----------------- 353 files changed, 26954 insertions(+), 25202 deletions(-) rename src/cfnlint/data/schemas/providers/{cn_north_1 => af_south_1}/aws-ec2-ipam.json (98%) delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-securitygroup.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnetcidrblock.json rename src/cfnlint/data/schemas/providers/{cn_north_1 => af_south_1}/aws-ec2-vpccidrblock.json (90%) delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-systemsmanagersap-application.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_east_1}/aws-ec2-ipam.json (98%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-securitygroup.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_east_1}/aws-ec2-vpccidrblock.json (90%) create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-systemsmanagersap-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-globalcluster.json rename src/cfnlint/data/schemas/providers/{us_west_2 => ap_northeast_2}/aws-ec2-ipam.json (98%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-securitygroup.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnetcidrblock.json rename src/cfnlint/data/schemas/providers/{us_west_2 => ap_northeast_2}/aws-ec2-vpccidrblock.json (90%) create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-channel.json (94%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-encoderconfiguration.json (96%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-playbackkeypair.json (95%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-playbackrestrictionpolicy.json (95%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-recordingconfiguration.json (98%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-stage.json (66%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-storageconfiguration.json (96%) rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_northeast_2}/aws-ivs-streamkey.json (95%) create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-systemsmanagersap-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.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_northeast_3/aws-iam-managedpolicy.json rename src/cfnlint/data/schemas/providers/{ap_south_2 => ap_northeast_3}/aws-medialive-multiplex.json (100%) rename src/cfnlint/data/schemas/providers/{ap_south_2 => ap_northeast_3}/aws-medialive-multiplexprogram.json (100%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-systemsmanagersap-application.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.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_south_2/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-queue.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-storageprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json rename src/cfnlint/data/schemas/providers/{ap_southeast_1 => ap_southeast_2}/aws-deadline-fleet.json (99%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-logdeliveryconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-systemsmanagersap-application.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-trigger.json rename src/cfnlint/data/schemas/providers/{eu_west_1 => ap_southeast_4}/aws-lambda-function.json (95%) create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.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_central_1/aws-iam-managedpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-logdeliveryconfiguration.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-userpool.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json rename src/cfnlint/data/schemas/providers/{ap_south_2 => ca_west_1}/aws-iam-managedpolicy.json (99%) rename src/cfnlint/data/schemas/providers/{eu_south_1 => ca_west_1}/aws-lambda-function.json (95%) create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-vpclink.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-codebuild-fleet.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-dataset.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-datasource.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-s3-bucket.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-database.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-glue-database.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-iam-managedpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-msk-replicator.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-systemsmanagersap-application.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-securitygroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-systemsmanagersap-application.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-trigger.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-codebuild-fleet.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-s3-bucket.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-glue-database.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_2/aws-iam-managedpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-securitygroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-glue-trigger.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-glue-database.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_central_1/aws-iam-managedpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-securitygroup.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-glue-trigger.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-rds-globalcluster.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-systemsmanagersap-application.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-vpccidrblock.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_1/aws-ivs-publickey.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-deadline-fleet.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-glue-database.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_east_2/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codepipeline-pipeline.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnetcidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-glue-database.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-apigatewayv2-integration.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-codepipeline-pipeline.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-ipam.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-glue-database.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-function.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-cluster.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-clustersubnetgroup.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-eventsubscription.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-redshift-scheduledaction.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-apigatewayv2-integration.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-ipam.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-securitygroup.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-vpccidrblock.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-glue-database.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-glue-trigger.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-lambda-eventsourcemapping.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-msk-replicator.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-globalcluster.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-codebuild-fleet.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-iam-managedpolicy.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-location-geofencecollection.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-msk-replicator.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-s3-bucket.json diff --git a/docs/rules.md b/docs/rules.md index 0cfe0fbacb..386f6af4bd 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 **229** rules are applied by this linter: +The following **230** rules are applied by this linter: | Rule ID | Title | Description | Config
(Name:Type:Default) | Source | Tags | | -------- | ----- | ----------- | ---------- | ------ | ---- | @@ -151,6 +151,7 @@ The following **229** rules are applied by this linter: | [E3052](../src/cfnlint/rules/resources/ecs/ServiceNetworkConfiguration.py) | Validate ECS service requires NetworkConfiguration | When using an ECS task definition has NetworkMode set to 'awsvpc' then 'NetworkConfiguration' is required | | [Source]() | `resources`,`ecs` | | [E3053](../src/cfnlint/rules/resources/ecs/TaskDefinitionAwsVpc.py) | Validate ECS task definition is has correct values for 'HostPort' | The 'HostPort' must either be undefined or equal to the 'ContainerPort' value | | [Source]() | `resources`,`ecs` | | [E3054](../src/cfnlint/rules/resources/ecs/ServiceFargate.py) | Validate ECS service using Fargate uses TaskDefinition that allows Fargate | When using an ECS service with 'LaunchType' of 'FARGATE' the associated task definition must have 'RequiresCompatibilities' specified with 'FARGATE' listed | | [Source]() | `resources`,`ecs` | +| [E3055](../src/cfnlint/rules/resources/CreationPolicy.py) | Check CreationPolicy values for Resources | Check that the CreationPolicy values are valid | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html) | `resources`,`creationPolicy` | | [E3057](../src/cfnlint/rules/resources/cloudfront/DistributionTargetOriginId.py) | Validate that CloudFront TargetOriginId is a specified Origin | CloudFront TargetOriginId has to map to an Origin Id that is in the same DistributionConfig | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-targetoriginid) | `properties`,`cloudfront` | | [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` | | [E3504](../src/cfnlint/rules/resources/backup/BackupPlanLifecycleRule.py) | Check minimum 90 period is met between BackupPlan cold and delete | Check that Backup plans with lifecycle rules have >= 90 days between cold and delete | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) | `properties`,`backup`,`plan`,`lifecycle` | diff --git a/pyproject.toml b/pyproject.toml index feeefce44b..fb7f27a8c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ classifiers = [ dynamic = ["version", "readme"] dependencies = [ "pyyaml>5.4", - "aws-sam-translator>=1.89.0", + "aws-sam-translator>=1.91.0", "jsonpatch", "networkx>=2.4,<4", "sympy>=1.0.0", diff --git a/src/cfnlint/data/AdditionalSpecs/Policies.json b/src/cfnlint/data/AdditionalSpecs/Policies.json index f7283e4156..ef08f6e4b2 100644 --- a/src/cfnlint/data/AdditionalSpecs/Policies.json +++ b/src/cfnlint/data/AdditionalSpecs/Policies.json @@ -38,6 +38,7 @@ "aws:Referer", "aws:RequestTag/${TagKey}", "aws:RequestedRegion", + "aws:ResourceAccount", "aws:SecureTransport", "aws:SourceAccount", "aws:SourceArn", @@ -4583,8 +4584,8 @@ ] }, "AWS Elemental Support Cases": { - "ARNFormat": "arn:${Partition}:elemental-support-cases:${Region}:${Account}:${ResourceType}/${ResourceName}", - "ARNRegex": "^arn:${Partition}:elemental-support-cases:.+:.+:.+", + "ARNFormat": "arn:aws:elemental-support-cases::${Account}:${ResourceType}/${ResourceId}", + "ARNRegex": "^arn:aws:elemental-support-cases::.+:.+", "Actions": [ "CheckCasePermission", "CreateCase", @@ -4592,7 +4593,7 @@ "GetCases", "UpdateCase" ], - "HasResource": false, + "HasResource": true, "StringPrefix": "elemental-support-cases" }, "AWS Elemental Support Content": { @@ -7326,6 +7327,7 @@ "GetFunctionConcurrency", "GetFunctionConfiguration", "GetFunctionEventInvokeConfig", + "GetFunctionRecursionConfig", "GetFunctionUrlConfig", "GetLayerVersion", "GetLayerVersionPolicy", @@ -7352,6 +7354,7 @@ "PutFunctionCodeSigningConfig", "PutFunctionConcurrency", "PutFunctionEventInvokeConfig", + "PutFunctionRecursionConfig", "PutProvisionedConcurrencyConfig", "PutRuntimeManagementConfig", "RemoveLayerVersionPermission", diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index 6f1e846ca5..fd552d9d73 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"a9c9c4e86fa45d162e023d842e604188\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"343fe2ded255ea1eb4361ffb84e97b5c\"", "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 890a97b3b1..1ccb3d0615 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"8d4bbc4aa97d77f9ede7a1836ddc5f07\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"8fd780fa4fb249f047ee40f9e23b58d3\"", "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 aef7cf8d0c..ce3486e93e 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"81d8f09a89ecb2230f0b179df8996946\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cf0bc6f919bb7539e74fc38f0610f301\"", "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 33b62126b8..9b0493eb78 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"d11f98bcda3a8ccc97d6cf688544fb57\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ada62c0c49d0cb4a8d6ef0b9c27c7104\"", "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 f39371b147..0c0774c9cb 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"36b0c92cafa5064b73ae0869e892c225\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5a4bec39aff60f8743d870f0aca870eb\"", "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 76db7da9be..411066dda5 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"78789e0c7af8c1303404a2a4f0da6a79\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1e97ee22f19c523e6d5e89f5f23fd451\"", "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 7dd47a7a87..9652b7ec58 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"e757e5729a6bd1a6e8c870d8658c3c9f\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3b694c8c634a1f62352ed6867fc3ea1d\"", "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 d9a0c35f71..430e494f32 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"497460ebdf9488d4d017d7e3b0809c50\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"8b4883851b7876b97fcc41a783bc77f4\"", "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 97bc19212d..ff2a5a0d0e 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"4cdb7f14f2d97ad731d1bdaeca1700da\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"80160e5c817569ba21da6099b297a3c0\"", "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 991d34227e..b6ed6456fe 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"34c927d08ab552209aacd52f1eb08854\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4b7110133bdcc3f901007586c8153f67\"", "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 9358d8c224..704a76acd2 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"1f6985441d8cec8f86226138533ffd9e\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9fe60465ede1db743aa9668fe83a044c\"", "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 4cbdf4d55f..5d305a948f 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"c67491b937cbca30e5643490c3713233\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"98ee7de715eaabfc83c390c8e61706d5\"", "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 3324036e23..9de95a7958 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"49b4ba9cf518f9a27c6c9be0dda75ea5\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e27d6af7020faefb56cacae02a60bc7a\"", "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 af3a915a1f..e06867cac5 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"cfa2b90f927f17625204fc1ab1b311e9\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c8432ca4ac99fcf042e55ea87ac793ea\"", "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 9964bd629a..1852920003 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"aeb4ffeeedc8d49f503a9f65b041cc74\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"8339b88fedfe2027c4b5e13dec8ddac6\"", "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 291fe680c2..0af1f8b3d9 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"867994cd046d42513307dd8acaf7c0e5\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ec231c86e3a63c803e427d1b96977854\"", "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 68a313e220..098281fb64 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"af6cd5cd9651be94c924330fc46da771\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b6208cce625cfb68610110ad10e189d5\"", "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 0a5c96dafd..c255469930 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"9375c0a4a1772b1535696ffdfbd14897\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"31e431d4e5d3820756b4eb459d352988\"", "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 b2d5b75493..b4b3b6ae54 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"0ee642e1495742e52dcf2a12e4d2bc7e\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1ad1bfb5b13b30aa88f3018b4f227f5e\"", "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 f77989f752..abe0e7bf49 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"e3f5a2ac51486a85388adfe5ab1bf4bc\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2964563671d25d1e7b2a0ea9c04baab4\"", "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 155fa74e1d..ef7af236f5 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"7cebb3ea36e7226be417d7a831c7a6c5\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b994c14e01743c09542f14bb5451546b\"", "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 23f820805e..c1bcf6ed83 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"8aa6afe23e4ba8cfd27b3166c0b162b8\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"466c7e495233afc05a4ef99122e400f5\"", "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 7bce7c8cb9..501fefc24d 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"04cfce05a445a6067f4e4dcfdd4e832c\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"64c7887c06e693fdd26d5eb610d31fd4\"", "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 06b78d9995..46221e51ca 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"168516956e0ed2df032f541093cd7821\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"213c77e101b961c8af53478865b0a2cb\"", "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 00c80738c3..e9b6ec03dd 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"4f056012bf992e61b76ded075456a22e\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ca2c92d1e4284a208aa8ab02894eb69c\"", "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 dce7c953de..e4794a2a4e 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"fbf0db5e9887d611f69c954a2762d7aa\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3c65f0bd0f526c78cb0bed886ed4ff42\"", "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 3d2484681c..de807273f3 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"062be2a99b28710bf0acc65510cc749b\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7110bdbbe709b44197a37d40602fbf3f\"", "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 a849c5d629..c719c0e5aa 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"75a7b77d6f70ff6f137cec863db1883b\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"63c7a0a0cf0f0cf326dec6f3a416dca9\"", "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 b4c1afc278..45b9da02bc 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"c136a0b7b3c31063afb98b307eef8488\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"29055ebeeeefb4b97638bbed7f16457e\"", "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 6e255dfa51..622a85cb16 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"41b97ecec6cab2ecb46a51ff9e8e676d\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"dd64ad881332f142da95140ac0d848fc\"", "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 07d2e15fb1..3f924b610f 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"db7bc9004323e26af70306afb3e6b337\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"04ad3c41185892164ab33491b21a9053\"", "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 b48e1e5781..864b90443f 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"dc6fb54c5b6269da98569642f66c9192\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"274b5fcb5e388fce4d89d5dd86f30412\"", "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 2d6db50c85..7101b7563f 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"c3b379c4d59f49e6f9ca02dd7143a36b\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a86204edb660c02cd0d9b3fc762632e0\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/extensions/aws_ec2_instance/instancetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_ec2_instance/instancetype_enum.json index bf5e16c908..2e0446703c 100644 --- a/src/cfnlint/data/schemas/extensions/aws_ec2_instance/instancetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_ec2_instance/instancetype_enum.json @@ -246,6 +246,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -1070,6 +1078,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -1894,6 +1910,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -2718,6 +2742,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -3542,6 +3574,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -4366,6 +4406,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -5190,6 +5238,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -6014,6 +6070,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -6838,6 +6902,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -7662,6 +7734,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -8486,6 +8566,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -9310,6 +9398,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -10134,6 +10230,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -10958,6 +11062,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -11782,6 +11894,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -12606,6 +12726,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -13430,6 +13558,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -14254,6 +14390,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -15078,6 +15222,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -15902,6 +16054,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -16726,6 +16886,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -17550,6 +17718,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -18374,6 +18550,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -19198,6 +19382,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -20022,6 +20214,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -20846,6 +21046,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -21670,6 +21878,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -22494,6 +22710,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -23318,6 +23542,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -24142,6 +24374,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -24966,6 +25206,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -25790,6 +26038,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", @@ -26614,6 +26870,14 @@ "g6.4xlarge", "g6.8xlarge", "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", "gr6.4xlarge", "gr6.8xlarge", "h1.16xlarge", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_codebuild_project/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_codebuild_project/boto.json index 19b60b5fda..3538d61303 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_codebuild_project/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_codebuild_project/boto.json @@ -49,6 +49,7 @@ "LINUX_CONTAINER", "LINUX_GPU_CONTAINER", "LINUX_LAMBDA_CONTAINER", + "MAC_ARM", "WINDOWS_CONTAINER", "WINDOWS_SERVER_2019_CONTAINER" ] 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 7ec6e44b12..b6f1da3f23 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -1084,7 +1084,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1110,11 +1109,13 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", "aws-ec2-subnet.json", + "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -1136,7 +1137,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1219,13 +1219,13 @@ "aws-fsx-storagevirtualmachine.json", "aws-fsx-volume.json", "aws-globalaccelerator-accelerator.json", + "aws-globalaccelerator-crossaccountattachment.json", "aws-globalaccelerator-endpointgroup.json", "aws-globalaccelerator-listener.json", "aws-glue-classifier.json", "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1238,6 +1238,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", @@ -1402,7 +1403,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", @@ -1551,6 +1551,7 @@ "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-synthetics-canary.json", + "aws-systemsmanagersap-application.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json similarity index 98% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-ipam.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json index a98b09b96a..69ed6aeb61 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-ipam.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-ipam.json @@ -85,9 +85,6 @@ "Description": { "type": "string" }, - "EnablePrivateGua": { - "type": "boolean" - }, "IpamId": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnetcidrblock.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnetcidrblock.json deleted file mode 100644 index 500d506d74..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-subnetcidrblock.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Ipv6CidrBlock", - "/properties/SubnetId", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:AssociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "delete": { - "permissions": [ - "ec2:DisassociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSubnets" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSubnets" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "maxLength": 42, - "type": "string" - }, - "Ipv6IpamPoolId": { - "type": "string" - }, - "Ipv6NetmaskLength": { - "maximum": 128, - "minimum": 0, - "type": "integer" - }, - "SubnetId": { - "type": "string" - } - }, - "propertyTransform": { - "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SubnetId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::SubnetCidrBlock", - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpccidrblock.json similarity index 90% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpccidrblock.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpccidrblock.json index bfff0e625b..d12a123311 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-vpccidrblock.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-vpccidrblock.json @@ -61,18 +61,12 @@ "Id": { "type": "string" }, - "IpSource": { - "type": "string" - }, "Ipv4IpamPoolId": { "type": "string" }, "Ipv4NetmaskLength": { "type": "integer" }, - "Ipv6AddressAttribute": { - "type": "string" - }, "Ipv6CidrBlock": { "type": "string" }, @@ -91,9 +85,7 @@ } }, "readOnlyProperties": [ - "/properties/Id", - "/properties/Ipv6AddressAttribute", - "/properties/IpSource" + "/properties/Id" ], "required": [ "VpcId" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json deleted file mode 100644 index 31881ad480..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-globalaccelerator-crossaccountattachment.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Resource": { - "additionalProperties": false, - "properties": { - "EndpointId": { - "type": "string" - }, - "Region": { - "type": "string" - } - }, - "required": [ - "EndpointId" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 127, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "globalaccelerator:DescribeCrossAccountAttachment", - "globalaccelerator:CreateCrossAccountAttachment", - "globalaccelerator:TagResource" - ] - }, - "delete": { - "permissions": [ - "globalaccelerator:DescribeCrossAccountAttachment", - "globalaccelerator:DeleteCrossAccountAttachment" - ] - }, - "list": { - "permissions": [ - "globalaccelerator:ListCrossAccountAttachments" - ] - }, - "read": { - "permissions": [ - "globalaccelerator:DescribeCrossAccountAttachment" - ] - }, - "update": { - "permissions": [ - "globalaccelerator:UpdateCrossAccountAttachment", - "globalaccelerator:DescribeCrossAccountAttachment", - "globalaccelerator:TagResource", - "globalaccelerator:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/AttachmentArn" - ], - "properties": { - "AttachmentArn": { - "type": "string" - }, - "Name": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9_-]{0,64}$", - "type": "string" - }, - "Principals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Resources": { - "items": { - "$ref": "#/definitions/Resource" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/AttachmentArn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::GlobalAccelerator::CrossAccountAttachment", - "writeOnlyProperties": [ - "/properties/Resources/*/Region" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/af_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/af_south_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-systemsmanagersap-application.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-systemsmanagersap-application.json deleted file mode 100644 index 4a0937c197..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-systemsmanagersap-application.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ], - "definitions": { - "Credential": { - "additionalProperties": false, - "properties": { - "CredentialType": { - "enum": [ - "ADMIN" - ], - "type": "string" - }, - "DatabaseName": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - }, - "SecretId": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - } - }, - "type": "object" - }, - "Instance": { - "pattern": "^i-[\\w\\d]{8}$|^i-[\\w\\d]{17}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ssm-sap:RegisterApplication", - "ssm-sap:GetApplication", - "ssm-sap:TagResource", - "ssm-sap:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "ssm-sap:DeregisterApplication", - "ssm-sap:GetApplication" - ] - }, - "list": { - "permissions": [ - "ssm-sap:ListApplications" - ] - }, - "read": { - "permissions": [ - "ssm-sap:GetApplication", - "ssm-sap:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ssm-sap:TagResource", - "ssm-sap:UntagResource", - "ssm-sap:ListTagsForResource", - "ssm-sap:GetApplication" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "ApplicationId": { - "pattern": "[\\w\\d]{1,50}", - "type": "string" - }, - "ApplicationType": { - "enum": [ - "HANA" - ], - "type": "string" - }, - "Arn": { - "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", - "type": "string" - }, - "Credentials": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Credential" - }, - "minItems": 1, - "type": "array" - }, - "Instances": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Instance" - }, - "minItems": 1, - "type": "array" - }, - "SapInstanceNumber": { - "pattern": "[0-9]{2}", - "type": "string" - }, - "Sid": { - "pattern": "[A-Z][A-Z0-9]{2}", - "type": "string" - }, - "Tags": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ApplicationId", - "ApplicationType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SystemsManagerSAP::Application", - "writeOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ] -} 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 6b94f287e3..3072a49ed5 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -1040,7 +1040,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1067,6 +1066,7 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", @@ -1094,7 +1094,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1184,7 +1183,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1197,6 +1195,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", @@ -1209,6 +1208,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", @@ -1521,6 +1521,7 @@ "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-synthetics-canary.json", + "aws-systemsmanagersap-application.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-ipam.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json index a98b09b96a..69ed6aeb61 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-ipam.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-ipam.json @@ -85,9 +85,6 @@ "Description": { "type": "string" }, - "EnablePrivateGua": { - "type": "boolean" - }, "IpamId": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpccidrblock.json similarity index 90% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpccidrblock.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpccidrblock.json index bfff0e625b..d12a123311 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-vpccidrblock.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-vpccidrblock.json @@ -61,18 +61,12 @@ "Id": { "type": "string" }, - "IpSource": { - "type": "string" - }, "Ipv4IpamPoolId": { "type": "string" }, "Ipv4NetmaskLength": { "type": "integer" }, - "Ipv6AddressAttribute": { - "type": "string" - }, "Ipv6CidrBlock": { "type": "string" }, @@ -91,9 +85,7 @@ } }, "readOnlyProperties": [ - "/properties/Id", - "/properties/Ipv6AddressAttribute", - "/properties/IpSource" + "/properties/Id" ], "required": [ "VpcId" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_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_east_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-iam-managedpolicy.json deleted file mode 100644 index f913eca461..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-iam-managedpolicy.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ManagedPolicyName", - "/properties/Description", - "/properties/Path" - ], - "handlers": { - "create": { - "permissions": [ - "iam:CreatePolicy", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - }, - "delete": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:DeletePolicyVersion", - "iam:DeletePolicy", - "iam:ListEntitiesForPolicy" - ] - }, - "list": { - "permissions": [ - "iam:ListPolicies" - ] - }, - "read": { - "permissions": [ - "iam:GetPolicy", - "iam:ListEntitiesForPolicy", - "iam:GetPolicyVersion" - ] - }, - "update": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:CreatePolicyVersion", - "iam:DeletePolicyVersion", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/PolicyArn" - ], - "properties": { - "AttachmentCount": { - "type": "integer" - }, - "CreateDate": { - "type": "string" - }, - "DefaultVersionId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Groups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "IsAttachable": { - "type": "boolean" - }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { - "pattern": "^/(.+/)*$", - "type": "string" - }, - "PermissionsBoundaryUsageCount": { - "type": "integer" - }, - "PolicyArn": { - "type": "string" - }, - "PolicyDocument": { - "maxLength": 6144, - "type": [ - "object", - "string" - ] - }, - "PolicyId": { - "type": "string" - }, - "Roles": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "UpdateDate": { - "type": "string" - }, - "Users": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/PolicyArn", - "/properties/AttachmentCount", - "/properties/CreateDate", - "/properties/DefaultVersionId", - "/properties/IsAttachable", - "/properties/PermissionsBoundaryUsageCount", - "/properties/PolicyId", - "/properties/UpdateDate" - ], - "required": [ - "PolicyDocument" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::IAM::ManagedPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-systemsmanagersap-application.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-systemsmanagersap-application.json deleted file mode 100644 index 4a0937c197..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-systemsmanagersap-application.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ], - "definitions": { - "Credential": { - "additionalProperties": false, - "properties": { - "CredentialType": { - "enum": [ - "ADMIN" - ], - "type": "string" - }, - "DatabaseName": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - }, - "SecretId": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - } - }, - "type": "object" - }, - "Instance": { - "pattern": "^i-[\\w\\d]{8}$|^i-[\\w\\d]{17}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ssm-sap:RegisterApplication", - "ssm-sap:GetApplication", - "ssm-sap:TagResource", - "ssm-sap:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "ssm-sap:DeregisterApplication", - "ssm-sap:GetApplication" - ] - }, - "list": { - "permissions": [ - "ssm-sap:ListApplications" - ] - }, - "read": { - "permissions": [ - "ssm-sap:GetApplication", - "ssm-sap:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ssm-sap:TagResource", - "ssm-sap:UntagResource", - "ssm-sap:ListTagsForResource", - "ssm-sap:GetApplication" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "ApplicationId": { - "pattern": "[\\w\\d]{1,50}", - "type": "string" - }, - "ApplicationType": { - "enum": [ - "HANA" - ], - "type": "string" - }, - "Arn": { - "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", - "type": "string" - }, - "Credentials": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Credential" - }, - "minItems": 1, - "type": "array" - }, - "Instances": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Instance" - }, - "minItems": 1, - "type": "array" - }, - "SapInstanceNumber": { - "pattern": "[0-9]{2}", - "type": "string" - }, - "Sid": { - "pattern": "[A-Z][A-Z0-9]{2}", - "type": "string" - }, - "Tags": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ApplicationId", - "ApplicationType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SystemsManagerSAP::Application", - "writeOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ] -} 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 709b51491e..4ef33dfa07 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -613,6 +613,7 @@ "AWS::IVS::EncoderConfiguration", "AWS::IVS::PlaybackKeyPair", "AWS::IVS::PlaybackRestrictionPolicy", + "AWS::IVS::PublicKey", "AWS::IVS::RecordingConfiguration", "AWS::IVS::Stage", "AWS::IVS::StorageConfiguration", @@ -1271,7 +1272,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1914,6 +1914,15 @@ "aws-iotwireless-taskdefinition.json", "aws-iotwireless-wirelessdevice.json", "aws-iotwireless-wirelessgateway.json", + "aws-ivs-channel.json", + "aws-ivs-encoderconfiguration.json", + "aws-ivs-playbackkeypair.json", + "aws-ivs-playbackrestrictionpolicy.json", + "aws-ivs-publickey.json", + "aws-ivs-recordingconfiguration.json", + "aws-ivs-stage.json", + "aws-ivs-storageconfiguration.json", + "aws-ivs-streamkey.json", "aws-ivschat-loggingconfiguration.json", "aws-ivschat-room.json", "aws-kafkaconnect-connector.json", @@ -1973,7 +1982,6 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", "aws-location-apikey.json", - "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", "aws-location-routecalculator.json", @@ -2151,7 +2159,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..e7b7290e95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-apigatewayv2-integration.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RequestTemplates": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "ResponseParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json new file mode 100644 index 0000000000..98904d38a1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json @@ -0,0 +1,168 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CollectionName", + "/properties/KmsKeyId" + ], + "definitions": { + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", + "type": "string" + } + }, + "type": "object" + }, + "iso8601UTC": { + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "deprecatedProperties": [ + "/properties/PricingPlan", + "/properties/PricingPlanDataSource" + ], + "handlers": { + "create": { + "permissions": [ + "geo:CreateGeofenceCollection", + "geo:DescribeGeofenceCollection", + "geo:TagResource", + "geo:UntagResource", + "kms:DescribeKey", + "kms:CreateGrant" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteGeofenceCollection", + "geo:DescribeGeofenceCollection" + ] + }, + "list": { + "permissions": [ + "geo:ListGeofenceCollections" + ] + }, + "read": { + "permissions": [ + "geo:DescribeGeofenceCollection", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "geo:CreateGeofenceCollection", + "geo:DescribeGeofenceCollection", + "geo:TagResource", + "geo:UntagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "geo:UpdateGeofenceCollection" + ] + } + }, + "primaryIdentifier": [ + "/properties/CollectionName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CollectionArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CollectionName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "PricingPlanDataSource": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CollectionArn", + "/properties/Arn", + "/properties/CreateTime", + "/properties/UpdateTime" + ], + "required": [ + "CollectionName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::GeofenceCollection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} 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 de08fdbbc2..721a6de872 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1450,7 +1450,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1478,11 +1477,13 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", "aws-ec2-subnet.json", + "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -1509,7 +1510,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1619,7 +1619,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1633,6 +1632,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", @@ -1739,14 +1739,6 @@ "aws-iottwinmaker-scene.json", "aws-iottwinmaker-syncjob.json", "aws-iottwinmaker-workspace.json", - "aws-ivs-channel.json", - "aws-ivs-encoderconfiguration.json", - "aws-ivs-playbackkeypair.json", - "aws-ivs-playbackrestrictionpolicy.json", - "aws-ivs-recordingconfiguration.json", - "aws-ivs-stage.json", - "aws-ivs-storageconfiguration.json", - "aws-ivs-streamkey.json", "aws-ivschat-loggingconfiguration.json", "aws-ivschat-room.json", "aws-kafkaconnect-connector.json", @@ -1864,7 +1856,6 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", - "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1958,7 +1949,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", @@ -2145,8 +2135,7 @@ "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", - "aws-synthetics-canary.json", - "aws-synthetics-group.json", + "aws-systemsmanagersap-application.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json similarity index 98% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-ipam.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json index a98b09b96a..69ed6aeb61 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-ipam.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-ipam.json @@ -85,9 +85,6 @@ "Description": { "type": "string" }, - "EnablePrivateGua": { - "type": "boolean" - }, "IpamId": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnetcidrblock.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnetcidrblock.json deleted file mode 100644 index 500d506d74..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-subnetcidrblock.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Ipv6CidrBlock", - "/properties/SubnetId", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:AssociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "delete": { - "permissions": [ - "ec2:DisassociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSubnets" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSubnets" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "maxLength": 42, - "type": "string" - }, - "Ipv6IpamPoolId": { - "type": "string" - }, - "Ipv6NetmaskLength": { - "maximum": 128, - "minimum": 0, - "type": "integer" - }, - "SubnetId": { - "type": "string" - } - }, - "propertyTransform": { - "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SubnetId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::SubnetCidrBlock", - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpccidrblock.json similarity index 90% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-vpccidrblock.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpccidrblock.json index bfff0e625b..d12a123311 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-ec2-vpccidrblock.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-vpccidrblock.json @@ -61,18 +61,12 @@ "Id": { "type": "string" }, - "IpSource": { - "type": "string" - }, "Ipv4IpamPoolId": { "type": "string" }, "Ipv4NetmaskLength": { "type": "integer" }, - "Ipv6AddressAttribute": { - "type": "string" - }, "Ipv6CidrBlock": { "type": "string" }, @@ -91,9 +85,7 @@ } }, "readOnlyProperties": [ - "/properties/Id", - "/properties/Ipv6AddressAttribute", - "/properties/IpSource" + "/properties/Id" ], "required": [ "VpcId" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-glue-trigger.json deleted file mode 100644 index 974dd89b9f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_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_northeast_1/aws-ivs-channel.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json similarity index 94% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-channel.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json index dd26542843..e4cb46dd5a 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-channel.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-channel.json @@ -32,7 +32,7 @@ "delete": { "permissions": [ "ivs:DeleteChannel", - "ivs:UntagResource" + "ivs:UnTagResource" ] }, "list": { @@ -52,7 +52,7 @@ "ivs:GetChannel", "ivs:UpdateChannel", "ivs:TagResource", - "ivs:UntagResource", + "ivs:UnTagResource", "ivs:ListTagsForResource" ] } @@ -98,7 +98,6 @@ }, "Preset": { "enum": [ - "", "HIGHER_BANDWIDTH_DELIVERY", "CONSTRAINED_BANDWIDTH_DELIVERY" ], @@ -140,11 +139,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-encoderconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json similarity index 96% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-encoderconfiguration.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json index 7d54858419..34c05bbe86 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-encoderconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-encoderconfiguration.json @@ -127,11 +127,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-playbackkeypair.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackkeypair.json similarity index 95% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-playbackkeypair.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackkeypair.json index f3a389e1f3..f80020c4a8 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-playbackkeypair.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackkeypair.json @@ -98,11 +98,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-playbackrestrictionpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json similarity index 95% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-playbackrestrictionpolicy.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json index 68b14f09e3..5fe616ae89 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-playbackrestrictionpolicy.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-playbackrestrictionpolicy.json @@ -114,11 +114,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-recordingconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-recordingconfiguration.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json index a7bb085d8e..e1c3e09a85 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-recordingconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-recordingconfiguration.json @@ -246,11 +246,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-stage.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-stage.json similarity index 66% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-stage.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-stage.json index c352722844..e8d7395467 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-stage.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-stage.json @@ -1,38 +1,6 @@ { "additionalProperties": false, "definitions": { - "AutoParticipantRecordingConfiguration": { - "additionalProperties": false, - "properties": { - "MediaTypes": { - "default": [ - "AUDIO_VIDEO" - ], - "insertionOrder": false, - "items": { - "enum": [ - "AUDIO_VIDEO", - "AUDIO_ONLY" - ], - "type": "string" - }, - "maxItems": 1, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "StorageConfigurationArn": { - "maxLength": 128, - "minLength": 0, - "pattern": "^$|^arn:aws:ivs:[a-z0-9-]+:[0-9]+:storage-configuration/[a-zA-Z0-9-]+$", - "type": "string" - } - }, - "required": [ - "StorageConfigurationArn" - ], - "type": "object" - }, "Tag": { "additionalProperties": false, "properties": { @@ -66,7 +34,7 @@ "delete": { "permissions": [ "ivs:DeleteStage", - "ivs:UntagResource" + "ivs:UnTagResource" ] }, "list": { @@ -86,7 +54,7 @@ "ivs:GetStage", "ivs:UpdateStage", "ivs:TagResource", - "ivs:UntagResource", + "ivs:UnTagResource", "ivs:ListTagsForResource" ] } @@ -107,9 +75,6 @@ "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+$", "type": "string" }, - "AutoParticipantRecordingConfiguration": { - "$ref": "#/definitions/AutoParticipantRecordingConfiguration" - }, "Name": { "maxLength": 128, "minLength": 0, @@ -132,11 +97,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-storageconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json similarity index 96% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-storageconfiguration.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json index ee906d6087..b3470f4c42 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-storageconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-storageconfiguration.json @@ -123,11 +123,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-streamkey.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json similarity index 95% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-streamkey.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json index b7bdb81731..cf085065b0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ivs-streamkey.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ivs-streamkey.json @@ -108,11 +108,6 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "cloudFormationSystemTags": false, - "permissions": [ - "ivs:TagResource", - "ivs:UntagResource", - "ivs:ListTagsForResource" - ], "tagOnCreate": true, "tagProperty": "/properties/Tags", "tagUpdatable": true, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json new file mode 100644 index 0000000000..442dc3b3a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-msk-replicator.json @@ -0,0 +1,349 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ReplicatorName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ReplicatorName", + "/properties/Description", + "/properties/KafkaClusters", + "/properties/ServiceExecutionRoleArn", + "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" + ], + "definitions": { + "AmazonMskCluster": { + "additionalProperties": false, + "properties": { + "MskClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + } + }, + "required": [ + "MskClusterArn" + ], + "type": "object" + }, + "ConsumerGroupReplication": { + "additionalProperties": false, + "properties": { + "ConsumerGroupsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ConsumerGroupsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "DetectAndCopyNewConsumerGroups": { + "type": "boolean" + }, + "SynchroniseConsumerGroupOffsets": { + "type": "boolean" + } + }, + "required": [ + "ConsumerGroupsToReplicate" + ], + "type": "object" + }, + "KafkaCluster": { + "additionalProperties": false, + "properties": { + "AmazonMskCluster": { + "$ref": "#/definitions/AmazonMskCluster" + }, + "VpcConfig": { + "$ref": "#/definitions/KafkaClusterClientVpcConfig" + } + }, + "required": [ + "AmazonMskCluster", + "VpcConfig" + ], + "type": "object" + }, + "KafkaClusterClientVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 3, + "minItems": 2, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "ReplicationInfo": { + "additionalProperties": false, + "properties": { + "ConsumerGroupReplication": { + "$ref": "#/definitions/ConsumerGroupReplication" + }, + "SourceKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TargetCompressionType": { + "enum": [ + "NONE", + "GZIP", + "SNAPPY", + "LZ4", + "ZSTD" + ], + "type": "string" + }, + "TargetKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TopicReplication": { + "$ref": "#/definitions/TopicReplication" + } + }, + "required": [ + "SourceKafkaClusterArn", + "TargetKafkaClusterArn", + "TopicReplication", + "ConsumerGroupReplication", + "TargetCompressionType" + ], + "type": "object" + }, + "ReplicationStartingPosition": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/ReplicationStartingPositionType" + } + }, + "required": [], + "type": "object" + }, + "ReplicationStartingPositionType": { + "enum": [ + "LATEST", + "EARLIEST" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TopicReplication": { + "additionalProperties": false, + "properties": { + "CopyAccessControlListsForTopics": { + "type": "boolean" + }, + "CopyTopicConfigurations": { + "type": "boolean" + }, + "DetectAndCopyNewTopics": { + "type": "boolean" + }, + "StartingPosition": { + "$ref": "#/definitions/ReplicationStartingPosition" + }, + "TopicsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TopicsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TopicsToReplicate" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kafka:CreateReplicator", + "kafka:CreateReplicatorReference", + "kafka:DescribeClusterV2", + "kafka:DescribeReplicator", + "kafka:GetBootstrapBrokers", + "kafka:ListTagsForResource", + "kafka:TagResource" + ] + }, + "delete": { + "permissions": [ + "kafka:DeleteReplicator", + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:UntagResource" + ] + }, + "list": { + "permissions": [ + "kafka:ListReplicators" + ] + }, + "read": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:TagResource", + "kafka:UntagResource", + "kafka:UpdateReplicationInfo" + ] + } + }, + "primaryIdentifier": [ + "/properties/ReplicatorArn" + ], + "properties": { + "CurrentVersion": { + "type": "string" + }, + "Description": { + "maxLength": 1024, + "type": "string" + }, + "KafkaClusters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/KafkaCluster" + }, + "maxItems": 2, + "minItems": 2, + "type": "array", + "uniqueItems": true + }, + "ReplicationInfoList": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicationInfo" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ReplicatorArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "ReplicatorName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", + "type": "string" + }, + "ServiceExecutionRoleArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/ReplicatorArn" + ], + "required": [ + "ReplicatorName", + "ReplicationInfoList", + "KafkaClusters", + "ServiceExecutionRoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MSK::Replicator" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json new file mode 100644 index 0000000000..274392c7eb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-canary.json @@ -0,0 +1,356 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/S3Encryption" + } + }, + "type": "object" + }, + "BaseScreenshot": { + "properties": { + "IgnoreCoordinates": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ScreenshotName": { + "type": "string" + } + }, + "required": [ + "ScreenshotName" + ], + "type": "object" + }, + "Code": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "S3Bucket", + "S3Key" + ] + }, + { + "required": [ + "Script" + ] + } + ], + "properties": { + "Handler": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + }, + "Script": { + "type": "string" + }, + "SourceLocationArn": { + "type": "string" + } + }, + "required": [ + "Handler" + ], + "type": "object" + }, + "RunConfig": { + "additionalProperties": false, + "properties": { + "ActiveTracing": { + "type": "boolean" + }, + "EnvironmentVariables": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z][a-zA-Z0-9_]+": { + "type": "string" + } + }, + "type": "object" + }, + "MemoryInMB": { + "type": "integer" + }, + "TimeoutInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "string" + }, + "Expression": { + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + }, + "VisualReference": { + "additionalProperties": false, + "properties": { + "BaseCanaryRunId": { + "type": "string" + }, + "BaseScreenshots": { + "items": { + "$ref": "#/definitions/BaseScreenshot" + }, + "type": "array" + } + }, + "required": [ + "BaseCanaryRunId" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/DeleteLambdaResourcesOnCanaryDeletion" + ], + "handlers": { + "create": { + "permissions": [ + "synthetics:CreateCanary", + "synthetics:StartCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "s3:CreateBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:CreateFunction", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "synthetics:DeleteCanary", + "synthetics:GetCanary" + ] + }, + "list": { + "permissions": [ + "synthetics:DescribeCanaries" + ] + }, + "read": { + "permissions": [ + "synthetics:GetCanary", + "synthetics:DescribeCanaries", + "synthetics:ListTagsForResource", + "iam:ListRoles", + "s3:ListAllMyBuckets", + "s3:GetBucketLocation" + ] + }, + "update": { + "permissions": [ + "synthetics:UpdateCanary", + "synthetics:StartCanary", + "synthetics:StopCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "synthetics:UntagResource", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/ArtifactConfig" + }, + "ArtifactS3Location": { + "pattern": "^(s3|S3)://", + "type": "string" + }, + "Code": { + "$ref": "#/definitions/Code" + }, + "DeleteLambdaResourcesOnCanaryDeletion": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FailureRetentionPeriod": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Name": { + "pattern": "^[0-9a-z_\\-]{1,21}$", + "type": "string" + }, + "RunConfig": { + "$ref": "#/definitions/RunConfig" + }, + "RuntimeVersion": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule" + }, + "StartCanaryAfterCreation": { + "type": "boolean" + }, + "State": { + "type": "string" + }, + "SuccessRetentionPeriod": { + "type": "integer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VPCConfig": { + "$ref": "#/definitions/VPCConfig" + }, + "VisualReference": { + "$ref": "#/definitions/VisualReference" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/State", + "/properties/Code/SourceLocationArn" + ], + "required": [ + "Name", + "Code", + "ArtifactS3Location", + "ExecutionRoleArn", + "Schedule", + "RuntimeVersion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-synthetics", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Synthetics::Canary", + "writeOnlyProperties": [ + "/properties/Code/S3Bucket", + "/properties/Code/S3Key", + "/properties/Code/S3ObjectVersion", + "/properties/Code/Script", + "/properties/DeleteLambdaResourcesOnCanaryDeletion", + "/properties/StartCanaryAfterCreation", + "/properties/RunConfig/EnvironmentVariables", + "/properties/VisualReference" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json new file mode 100644 index 0000000000..66d7a5ef08 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-synthetics-group.json @@ -0,0 +1,111 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ResourceArn": { + "pattern": "arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b|e|f?)))?-[a-z]+-\\d{1}:\\d{12}:canary:[0-9a-z_\\-]", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)([a-zA-Z\\d\\s_.:/=+\\-@]+)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([a-zA-Z\\d\\s_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "synthetics:CreateGroup", + "synthetics:AssociateResource", + "synthetics:TagResource", + "synthetics:GetGroup" + ] + }, + "delete": { + "permissions": [ + "synthetics:DeleteGroup", + "synthetics:GetGroup" + ] + }, + "list": { + "permissions": [ + "synthetics:ListGroups" + ] + }, + "read": { + "permissions": [ + "synthetics:GetGroup", + "synthetics:ListTagsForResource", + "synthetics:ListGroupResources" + ] + }, + "update": { + "permissions": [ + "synthetics:AssociateResource", + "synthetics:DisassociateResource", + "synthetics:TagResource", + "synthetics:UntagResource", + "synthetics:GetGroup", + "synthetics:ListGroupResources" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "pattern": "^[0-9a-z_\\-]{1,64}$", + "type": "string" + }, + "ResourceArns": { + "items": { + "$ref": "#/definitions/ResourceArn" + }, + "maxItems": 10, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-synthetics", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Synthetics::Group" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-systemsmanagersap-application.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-systemsmanagersap-application.json deleted file mode 100644 index 4a0937c197..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-systemsmanagersap-application.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ], - "definitions": { - "Credential": { - "additionalProperties": false, - "properties": { - "CredentialType": { - "enum": [ - "ADMIN" - ], - "type": "string" - }, - "DatabaseName": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - }, - "SecretId": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - } - }, - "type": "object" - }, - "Instance": { - "pattern": "^i-[\\w\\d]{8}$|^i-[\\w\\d]{17}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ssm-sap:RegisterApplication", - "ssm-sap:GetApplication", - "ssm-sap:TagResource", - "ssm-sap:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "ssm-sap:DeregisterApplication", - "ssm-sap:GetApplication" - ] - }, - "list": { - "permissions": [ - "ssm-sap:ListApplications" - ] - }, - "read": { - "permissions": [ - "ssm-sap:GetApplication", - "ssm-sap:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ssm-sap:TagResource", - "ssm-sap:UntagResource", - "ssm-sap:ListTagsForResource", - "ssm-sap:GetApplication" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "ApplicationId": { - "pattern": "[\\w\\d]{1,50}", - "type": "string" - }, - "ApplicationType": { - "enum": [ - "HANA" - ], - "type": "string" - }, - "Arn": { - "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", - "type": "string" - }, - "Credentials": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Credential" - }, - "minItems": 1, - "type": "array" - }, - "Instances": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Instance" - }, - "minItems": 1, - "type": "array" - }, - "SapInstanceNumber": { - "pattern": "[0-9]{2}", - "type": "string" - }, - "Sid": { - "pattern": "[A-Z][A-Z0-9]{2}", - "type": "string" - }, - "Tags": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ApplicationId", - "ApplicationType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SystemsManagerSAP::Application", - "writeOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ] -} 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 07c0d80f5a..87d785ef8a 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -989,7 +989,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1016,6 +1015,7 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", @@ -1042,7 +1042,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1134,7 +1133,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1143,6 +1141,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", @@ -1155,6 +1154,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", @@ -1230,8 +1230,6 @@ "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", - "aws-medialive-multiplex.json", - "aws-medialive-multiplexprogram.json", "aws-mediapackage-asset.json", "aws-mediapackage-channel.json", "aws-mediapackage-originendpoint.json", @@ -1474,6 +1472,7 @@ "aws-stepfunctions-statemachineversion.json", "aws-synthetics-canary.json", "aws-synthetics-group.json", + "aws-systemsmanagersap-application.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} 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_northeast_3/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iam-managedpolicy.json deleted file mode 100644 index f913eca461..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iam-managedpolicy.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ManagedPolicyName", - "/properties/Description", - "/properties/Path" - ], - "handlers": { - "create": { - "permissions": [ - "iam:CreatePolicy", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - }, - "delete": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:DeletePolicyVersion", - "iam:DeletePolicy", - "iam:ListEntitiesForPolicy" - ] - }, - "list": { - "permissions": [ - "iam:ListPolicies" - ] - }, - "read": { - "permissions": [ - "iam:GetPolicy", - "iam:ListEntitiesForPolicy", - "iam:GetPolicyVersion" - ] - }, - "update": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:CreatePolicyVersion", - "iam:DeletePolicyVersion", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/PolicyArn" - ], - "properties": { - "AttachmentCount": { - "type": "integer" - }, - "CreateDate": { - "type": "string" - }, - "DefaultVersionId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Groups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "IsAttachable": { - "type": "boolean" - }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { - "pattern": "^/(.+/)*$", - "type": "string" - }, - "PermissionsBoundaryUsageCount": { - "type": "integer" - }, - "PolicyArn": { - "type": "string" - }, - "PolicyDocument": { - "maxLength": 6144, - "type": [ - "object", - "string" - ] - }, - "PolicyId": { - "type": "string" - }, - "Roles": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "UpdateDate": { - "type": "string" - }, - "Users": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/PolicyArn", - "/properties/AttachmentCount", - "/properties/CreateDate", - "/properties/DefaultVersionId", - "/properties/IsAttachable", - "/properties/PermissionsBoundaryUsageCount", - "/properties/PolicyId", - "/properties/UpdateDate" - ], - "required": [ - "PolicyDocument" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::IAM::ManagedPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-medialive-multiplex.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-medialive-multiplex.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_south_2/aws-medialive-multiplex.json rename to src/cfnlint/data/schemas/providers/ap_northeast_3/aws-medialive-multiplex.json diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-medialive-multiplexprogram.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-medialive-multiplexprogram.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_south_2/aws-medialive-multiplexprogram.json rename to src/cfnlint/data/schemas/providers/ap_northeast_3/aws-medialive-multiplexprogram.json diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-systemsmanagersap-application.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-systemsmanagersap-application.json deleted file mode 100644 index 4a0937c197..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-systemsmanagersap-application.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ], - "definitions": { - "Credential": { - "additionalProperties": false, - "properties": { - "CredentialType": { - "enum": [ - "ADMIN" - ], - "type": "string" - }, - "DatabaseName": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - }, - "SecretId": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - } - }, - "type": "object" - }, - "Instance": { - "pattern": "^i-[\\w\\d]{8}$|^i-[\\w\\d]{17}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ssm-sap:RegisterApplication", - "ssm-sap:GetApplication", - "ssm-sap:TagResource", - "ssm-sap:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "ssm-sap:DeregisterApplication", - "ssm-sap:GetApplication" - ] - }, - "list": { - "permissions": [ - "ssm-sap:ListApplications" - ] - }, - "read": { - "permissions": [ - "ssm-sap:GetApplication", - "ssm-sap:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ssm-sap:TagResource", - "ssm-sap:UntagResource", - "ssm-sap:ListTagsForResource", - "ssm-sap:GetApplication" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "ApplicationId": { - "pattern": "[\\w\\d]{1,50}", - "type": "string" - }, - "ApplicationType": { - "enum": [ - "HANA" - ], - "type": "string" - }, - "Arn": { - "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", - "type": "string" - }, - "Credentials": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Credential" - }, - "minItems": 1, - "type": "array" - }, - "Instances": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Instance" - }, - "minItems": 1, - "type": "array" - }, - "SapInstanceNumber": { - "pattern": "[0-9]{2}", - "type": "string" - }, - "Sid": { - "pattern": "[A-Z][A-Z0-9]{2}", - "type": "string" - }, - "Tags": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ApplicationId", - "ApplicationType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SystemsManagerSAP::Application", - "writeOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ] -} 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 26aa6516a6..24fc9506df 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -1518,7 +1518,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1622,7 +1621,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1751,14 +1749,6 @@ "aws-iottwinmaker-scene.json", "aws-iottwinmaker-syncjob.json", "aws-iottwinmaker-workspace.json", - "aws-ivs-channel.json", - "aws-ivs-encoderconfiguration.json", - "aws-ivs-playbackkeypair.json", - "aws-ivs-playbackrestrictionpolicy.json", - "aws-ivs-recordingconfiguration.json", - "aws-ivs-stage.json", - "aws-ivs-storageconfiguration.json", - "aws-ivs-streamkey.json", "aws-ivschat-loggingconfiguration.json", "aws-ivschat-room.json", "aws-kafkaconnect-connector.json", @@ -1788,6 +1778,7 @@ "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", + "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", "aws-lambda-layerversion.json", "aws-lambda-layerversionpermission.json", @@ -1807,7 +1798,6 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", - "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1875,7 +1865,6 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", - "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json new file mode 100644 index 0000000000..e4cb46dd5a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-channel.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "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": [ + "ivs:CreateChannel", + "ivs:TagResource" + ] + }, + "delete": { + "permissions": [ + "ivs:DeleteChannel", + "ivs:UnTagResource" + ] + }, + "list": { + "permissions": [ + "ivs:ListChannels", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetChannel", + "ivs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivs:GetChannel", + "ivs:UpdateChannel", + "ivs:TagResource", + "ivs:UnTagResource", + "ivs:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Authorized": { + "default": false, + "type": "boolean" + }, + "IngestEndpoint": { + "type": "string" + }, + "InsecureIngest": { + "default": false, + "type": "boolean" + }, + "LatencyMode": { + "default": "LOW", + "enum": [ + "NORMAL", + "LOW" + ], + "type": "string" + }, + "Name": { + "default": "-", + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "PlaybackUrl": { + "type": "string" + }, + "Preset": { + "enum": [ + "HIGHER_BANDWIDTH_DELIVERY", + "CONSTRAINED_BANDWIDTH_DELIVERY" + ], + "type": "string" + }, + "RecordingConfigurationArn": { + "default": "", + "maxLength": 128, + "minLength": 0, + "pattern": "^$|arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "Type": { + "default": "STANDARD", + "enum": [ + "STANDARD", + "BASIC", + "ADVANCED_SD", + "ADVANCED_HD" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/PlaybackUrl", + "/properties/IngestEndpoint" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::Channel" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json new file mode 100644 index 0000000000..34c05bbe86 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-encoderconfiguration.json @@ -0,0 +1,136 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Video", + "/properties/Video/Bitrate", + "/properties/Video/Framerate", + "/properties/Video/Height", + "/properties/Video/Width" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ivs:CreateEncoderConfiguration", + "ivs:TagResource" + ] + }, + "delete": { + "permissions": [ + "ivs:DeleteEncoderConfiguration", + "ivs:UntagResource" + ] + }, + "list": { + "permissions": [ + "ivs:ListEncoderConfigurations", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetEncoderConfiguration", + "ivs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivs:GetEncoderConfiguration", + "ivs:ListTagsForResource", + "ivs:UntagResource", + "ivs:TagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:encoder-configuration/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "Video": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "default": 2500000, + "maximum": 8500000, + "minimum": 1, + "type": "integer" + }, + "Framerate": { + "default": 30, + "maximum": 60, + "minimum": 1, + "type": "number" + }, + "Height": { + "default": 720, + "maximum": 1920, + "minimum": 1, + "type": "integer" + }, + "Width": { + "default": 1280, + "maximum": 1920, + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::EncoderConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json new file mode 100644 index 0000000000..f80020c4a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackkeypair.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PublicKeyMaterial", + "/properties/Name" + ], + "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": [ + "ivs:ImportPlaybackKeyPair", + "ivs:TagResource" + ] + }, + "delete": { + "permissions": [ + "ivs:DeletePlaybackKeyPair", + "ivs:UntagResource" + ] + }, + "list": { + "permissions": [ + "ivs:ListPlaybackKeyPairs", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetPlaybackKeyPair" + ] + }, + "update": { + "permissions": [ + "ivs:GetPlaybackKeyPair", + "ivs:ListTagsForResource", + "ivs:UntagResource", + "ivs:TagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-key/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Fingerprint": { + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "PublicKeyMaterial": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Fingerprint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::PlaybackKeyPair", + "writeOnlyProperties": [ + "/properties/PublicKeyMaterial" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json new file mode 100644 index 0000000000..5fe616ae89 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-playbackrestrictionpolicy.json @@ -0,0 +1,123 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ivs:CreatePlaybackRestrictionPolicy", + "ivs:TagResource" + ] + }, + "delete": { + "permissions": [ + "ivs:DeletePlaybackRestrictionPolicy", + "ivs:UntagResource" + ] + }, + "list": { + "permissions": [ + "ivs:ListPlaybackRestrictionPolicies", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetPlaybackRestrictionPolicy", + "ivs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivs:GetPlaybackRestrictionPolicy", + "ivs:UpdatePlaybackRestrictionPolicy", + "ivs:ListTagsForResource", + "ivs:UntagResource", + "ivs:TagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "AllowedCountries": { + "default": [], + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AllowedOrigins": { + "default": [], + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "Arn": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-restriction-policy/[a-zA-Z0-9-]+$", + "type": "string" + }, + "EnableStrictOriginEnforcement": { + "default": false, + "type": "boolean" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AllowedCountries", + "AllowedOrigins" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::PlaybackRestrictionPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json new file mode 100644 index 0000000000..e1c3e09a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-recordingconfiguration.json @@ -0,0 +1,255 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/DestinationConfiguration", + "/properties/DestinationConfiguration/S3", + "/properties/DestinationConfiguration/S3/BucketName", + "/properties/RecordingReconnectWindowSeconds", + "/properties/ThumbnailConfiguration", + "/properties/ThumbnailConfiguration/RecordingMode", + "/properties/ThumbnailConfiguration/TargetIntervalSeconds", + "/properties/ThumbnailConfiguration/Storage", + "/properties/ThumbnailConfiguration/Resolution", + "/properties/RenditionConfiguration", + "/properties/RenditionConfiguration/RenditionSelection", + "/properties/RenditionConfiguration/Renditions" + ], + "definitions": { + "DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/S3DestinationConfiguration" + } + }, + "required": [], + "type": "object" + }, + "RenditionConfiguration": { + "additionalProperties": false, + "properties": { + "RenditionSelection": { + "default": "ALL", + "enum": [ + "ALL", + "NONE", + "CUSTOM" + ], + "type": "string" + }, + "Renditions": { + "insertionOrder": false, + "items": { + "enum": [ + "FULL_HD", + "HD", + "SD", + "LOWEST_RESOLUTION" + ], + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "required": [], + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9-.]+$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "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" + }, + "ThumbnailConfiguration": { + "additionalProperties": false, + "properties": { + "RecordingMode": { + "default": "INTERVAL", + "enum": [ + "INTERVAL", + "DISABLED" + ], + "type": "string" + }, + "Resolution": { + "enum": [ + "FULL_HD", + "HD", + "SD", + "LOWEST_RESOLUTION" + ], + "type": "string" + }, + "Storage": { + "insertionOrder": false, + "items": { + "enum": [ + "SEQUENTIAL", + "LATEST" + ], + "type": "string" + }, + "maxItems": 2, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "TargetIntervalSeconds": { + "default": 60, + "maximum": 60, + "minimum": 1, + "type": "integer" + } + }, + "required": [], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ivs:CreateRecordingConfiguration", + "ivs:GetRecordingConfiguration", + "ivs:TagResource", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "iam:AttachRolePolicy", + "s3:ListBucket", + "s3:GetBucketLocation", + "cloudformation:ListExports" + ] + }, + "delete": { + "permissions": [ + "ivs:DeleteRecordingConfiguration", + "ivs:UntagResource", + "iam:CreateServiceLinkedRole" + ] + }, + "list": { + "permissions": [ + "ivs:ListRecordingConfigurations", + "s3:GetBucketLocation", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetRecordingConfiguration", + "s3:GetBucketLocation", + "ivs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivs:GetRecordingConfiguration", + "sts:AssumeRole", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "iam:AttachRolePolicy", + "s3:ListBucket", + "ivs:TagResource", + "ivs:UntagResource", + "ivs:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 0, + "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$", + "type": "string" + }, + "DestinationConfiguration": { + "$ref": "#/definitions/DestinationConfiguration" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "RecordingReconnectWindowSeconds": { + "default": 0, + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "RenditionConfiguration": { + "$ref": "#/definitions/RenditionConfiguration" + }, + "State": { + "enum": [ + "CREATING", + "CREATE_FAILED", + "ACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "ThumbnailConfiguration": { + "$ref": "#/definitions/ThumbnailConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/State" + ], + "required": [ + "DestinationConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::RecordingConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json new file mode 100644 index 0000000000..e8d7395467 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-stage.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "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": [ + "ivs:CreateStage", + "ivs:GetStage", + "ivs:TagResource", + "ivs:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "ivs:DeleteStage", + "ivs:UnTagResource" + ] + }, + "list": { + "permissions": [ + "ivs:ListStages", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetStage", + "ivs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivs:GetStage", + "ivs:UpdateStage", + "ivs:TagResource", + "ivs:UnTagResource", + "ivs:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "ActiveSessionId": { + "default": "", + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Arn": { + "maxLength": 128, + "minLength": 0, + "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:stage/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ActiveSessionId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json new file mode 100644 index 0000000000..b3470f4c42 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-storageconfiguration.json @@ -0,0 +1,132 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/S3", + "/properties/S3/BucketName" + ], + "definitions": { + "S3StorageConfiguration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9-.]+$", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "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": [ + "ivs:CreateStorageConfiguration", + "ivs:GetStorageConfiguration", + "ivs:TagResource", + "s3:GetBucketLocation", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "ivs:DeleteStorageConfiguration", + "ivs:UntagResource", + "s3:GetBucketPolicy", + "s3:DeleteBucketPolicy", + "s3:PutBucketPolicy" + ] + }, + "list": { + "permissions": [ + "ivs:ListStorageConfigurations", + "s3:GetBucketLocation", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetStorageConfiguration", + "ivs:ListTagsForResource", + "s3:GetBucketLocation" + ] + }, + "update": { + "permissions": [ + "ivs:GetStorageConfiguration", + "ivs:TagResource", + "ivs:UntagResource", + "ivs:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 0, + "pattern": "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:storage-configuration/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "pattern": "^[a-zA-Z0-9-_]*$", + "type": "string" + }, + "S3": { + "$ref": "#/definitions/S3StorageConfiguration" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "S3" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::StorageConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json new file mode 100644 index 0000000000..cf085065b0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ivs-streamkey.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ChannelArn" + ], + "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": [ + "ivs:TagResource", + "ivs:UntagResource", + "ivs:CreateStreamKey" + ] + }, + "delete": { + "permissions": [ + "ivs:DeleteStreamKey", + "ivs:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ChannelArn": { + "$ref": "resource-schema.json#/properties/ChannelArn" + } + }, + "required": [ + "ChannelArn" + ] + }, + "permissions": [ + "ivs:ListStreamKeys", + "ivs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ivs:GetStreamKey", + "ivs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ivs:GetStreamKey", + "ivs:TagResource", + "ivs:UntagResource", + "ivs:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 128, + "minLength": 1, + "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:stream-key/[a-zA-Z0-9-]+$", + "type": "string" + }, + "ChannelArn": { + "pattern": "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Value" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "ChannelArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IVS::StreamKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-lambda-eventsourcemapping.json deleted file mode 100644 index 90ac6114e9..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-lambda-eventsourcemapping.json +++ /dev/null @@ -1,359 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/EventSourceArn", - "/properties/StartingPosition", - "/properties/StartingPositionTimestamp", - "/properties/SelfManagedEventSource", - "/properties/AmazonManagedKafkaEventSourceConfig", - "/properties/SelfManagedKafkaEventSourceConfig" - ], - "definitions": { - "AmazonManagedKafkaEventSourceConfig": { - "additionalProperties": false, - "properties": { - "ConsumerGroupId": { - "$ref": "#/definitions/ConsumerGroupId" - } - }, - "type": "object" - }, - "ConsumerGroupId": { - "maxLength": 200, - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", - "type": "string" - }, - "DestinationConfig": { - "additionalProperties": false, - "properties": { - "OnFailure": { - "$ref": "#/definitions/OnFailure" - } - }, - "type": "object" - }, - "DocumentDBEventSourceConfig": { - "additionalProperties": false, - "properties": { - "CollectionName": { - "maxLength": 57, - "minLength": 1, - "type": "string" - }, - "DatabaseName": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "FullDocument": { - "enum": [ - "UpdateLookup", - "Default" - ], - "type": "string" - } - }, - "type": "object" - }, - "Endpoints": { - "additionalProperties": false, - "properties": { - "KafkaBootstrapServers": { - "items": { - "maxLength": 300, - "minLength": 1, - "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Filter": { - "additionalProperties": false, - "properties": { - "Pattern": { - "maxLength": 4096, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "FilterCriteria": { - "additionalProperties": false, - "properties": { - "Filters": { - "items": { - "$ref": "#/definitions/Filter" - }, - "maxItems": 20, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "MaximumConcurrency": { - "maximum": 1000, - "minimum": 2, - "type": "integer" - }, - "OnFailure": { - "additionalProperties": false, - "properties": { - "Destination": { - "maxLength": 1024, - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "type": "string" - } - }, - "type": "object" - }, - "ScalingConfig": { - "additionalProperties": false, - "properties": { - "MaximumConcurrency": { - "$ref": "#/definitions/MaximumConcurrency" - } - }, - "type": "object" - }, - "SelfManagedEventSource": { - "additionalProperties": false, - "properties": { - "Endpoints": { - "$ref": "#/definitions/Endpoints" - } - }, - "type": "object" - }, - "SelfManagedKafkaEventSourceConfig": { - "additionalProperties": false, - "properties": { - "ConsumerGroupId": { - "$ref": "#/definitions/ConsumerGroupId" - } - }, - "type": "object" - }, - "SourceAccessConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "BASIC_AUTH", - "VPC_SUBNET", - "VPC_SECURITY_GROUP", - "SASL_SCRAM_512_AUTH", - "SASL_SCRAM_256_AUTH", - "VIRTUAL_HOST", - "CLIENT_CERTIFICATE_TLS_AUTH", - "SERVER_ROOT_CA_CERTIFICATE" - ], - "type": "string" - }, - "URI": { - "maxLength": 200, - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "lambda:CreateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - }, - "delete": { - "permissions": [ - "lambda:DeleteEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - }, - "list": { - "permissions": [ - "lambda:ListEventSourceMappings" - ] - }, - "read": { - "permissions": [ - "lambda:GetEventSourceMapping" - ] - }, - "update": { - "permissions": [ - "lambda:UpdateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AmazonManagedKafkaEventSourceConfig": { - "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig" - }, - "BatchSize": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "BisectBatchOnFunctionError": { - "type": "boolean" - }, - "DestinationConfig": { - "$ref": "#/definitions/DestinationConfig" - }, - "DocumentDBEventSourceConfig": { - "$ref": "#/definitions/DocumentDBEventSourceConfig" - }, - "Enabled": { - "type": "boolean" - }, - "EventSourceArn": { - "maxLength": 1024, - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "type": "string" - }, - "FilterCriteria": { - "$ref": "#/definitions/FilterCriteria" - }, - "FunctionName": { - "maxLength": 140, - "minLength": 1, - "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", - "type": "string" - }, - "FunctionResponseTypes": { - "items": { - "enum": [ - "ReportBatchItemFailures" - ], - "type": "string" - }, - "maxLength": 1, - "minLength": 0, - "type": "array", - "uniqueItems": true - }, - "Id": { - "maxLength": 36, - "minLength": 36, - "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", - "type": "string" - }, - "MaximumBatchingWindowInSeconds": { - "maximum": 300, - "minimum": 0, - "type": "integer" - }, - "MaximumRecordAgeInSeconds": { - "maximum": 604800, - "minimum": -1, - "type": "integer" - }, - "MaximumRetryAttempts": { - "maximum": 10000, - "minimum": -1, - "type": "integer" - }, - "ParallelizationFactor": { - "maximum": 10, - "minimum": 1, - "type": "integer" - }, - "Queues": { - "items": { - "maxLength": 1000, - "minLength": 1, - "pattern": "[\\s\\S]*", - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ScalingConfig": { - "$ref": "#/definitions/ScalingConfig" - }, - "SelfManagedEventSource": { - "$ref": "#/definitions/SelfManagedEventSource" - }, - "SelfManagedKafkaEventSourceConfig": { - "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig" - }, - "SourceAccessConfigurations": { - "items": { - "$ref": "#/definitions/SourceAccessConfiguration" - }, - "maxItems": 22, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "StartingPosition": { - "enum": [ - "AT_TIMESTAMP", - "LATEST", - "TRIM_HORIZON" - ], - "maxLength": 12, - "minLength": 6, - "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", - "type": "string" - }, - "StartingPositionTimestamp": { - "type": "number" - }, - "Topics": { - "items": { - "maxLength": 249, - "minLength": 1, - "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TumblingWindowInSeconds": { - "maximum": 900, - "minimum": 0, - "type": "integer" - } - }, - "propertyTransform": { - "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "FunctionName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Lambda::EventSourceMapping" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json new file mode 100644 index 0000000000..b41c88be08 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json @@ -0,0 +1,226 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyName" + ], + "definitions": { + "ApiKeyRestrictions": { + "additionalProperties": false, + "properties": { + "AllowActions": { + "insertionOrder": false, + "items": { + "maxLength": 200, + "minLength": 5, + "pattern": "^geo:\\w*\\*?$", + "type": "string" + }, + "maxItems": 7, + "minItems": 1, + "type": "array" + }, + "AllowReferers": { + "insertionOrder": false, + "items": { + "maxLength": 253, + "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "AllowResources": { + "insertionOrder": false, + "items": { + "maxLength": 1600, + "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "AllowActions", + "AllowResources" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", + "type": "string" + } + }, + "type": "object" + }, + "iso8601UTC": { + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "geo:CreateKey", + "geo:DescribeKey", + "geo:TagResource", + "geo:UntagResource", + "geo:GetMapTile", + "geo:GetMapStyleDescriptor", + "geo:GetMapSprites", + "geo:GetMapGlyphs", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace", + "geo:CalculateRoute", + "geo:CalculateRouteMatrix" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteKey", + "geo:DescribeKey" + ] + }, + "list": { + "permissions": [ + "geo:ListKeys" + ] + }, + "read": { + "permissions": [ + "geo:DescribeKey" + ] + }, + "update": { + "permissions": [ + "geo:CreateKey", + "geo:DescribeKey", + "geo:TagResource", + "geo:UntagResource", + "geo:GetMapTile", + "geo:GetMapStyleDescriptor", + "geo:GetMapSprites", + "geo:GetMapGlyphs", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace", + "geo:CalculateRoute", + "geo:CalculateRouteMatrix", + "geo:UpdateKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/KeyName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "ExpireTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "ForceDelete": { + "type": "boolean" + }, + "ForceUpdate": { + "type": "boolean" + }, + "KeyArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "KeyName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "NoExpiry": { + "type": "boolean" + }, + "Restrictions": { + "$ref": "#/definitions/ApiKeyRestrictions" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/KeyArn", + "/properties/UpdateTime" + ], + "required": [ + "KeyName", + "Restrictions" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::APIKey", + "writeOnlyProperties": [ + "/properties/ForceUpdate", + "/properties/ForceDelete", + "/properties/NoExpiry" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json new file mode 100644 index 0000000000..442dc3b3a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-msk-replicator.json @@ -0,0 +1,349 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ReplicatorName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ReplicatorName", + "/properties/Description", + "/properties/KafkaClusters", + "/properties/ServiceExecutionRoleArn", + "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" + ], + "definitions": { + "AmazonMskCluster": { + "additionalProperties": false, + "properties": { + "MskClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + } + }, + "required": [ + "MskClusterArn" + ], + "type": "object" + }, + "ConsumerGroupReplication": { + "additionalProperties": false, + "properties": { + "ConsumerGroupsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ConsumerGroupsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "DetectAndCopyNewConsumerGroups": { + "type": "boolean" + }, + "SynchroniseConsumerGroupOffsets": { + "type": "boolean" + } + }, + "required": [ + "ConsumerGroupsToReplicate" + ], + "type": "object" + }, + "KafkaCluster": { + "additionalProperties": false, + "properties": { + "AmazonMskCluster": { + "$ref": "#/definitions/AmazonMskCluster" + }, + "VpcConfig": { + "$ref": "#/definitions/KafkaClusterClientVpcConfig" + } + }, + "required": [ + "AmazonMskCluster", + "VpcConfig" + ], + "type": "object" + }, + "KafkaClusterClientVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 3, + "minItems": 2, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "ReplicationInfo": { + "additionalProperties": false, + "properties": { + "ConsumerGroupReplication": { + "$ref": "#/definitions/ConsumerGroupReplication" + }, + "SourceKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TargetCompressionType": { + "enum": [ + "NONE", + "GZIP", + "SNAPPY", + "LZ4", + "ZSTD" + ], + "type": "string" + }, + "TargetKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TopicReplication": { + "$ref": "#/definitions/TopicReplication" + } + }, + "required": [ + "SourceKafkaClusterArn", + "TargetKafkaClusterArn", + "TopicReplication", + "ConsumerGroupReplication", + "TargetCompressionType" + ], + "type": "object" + }, + "ReplicationStartingPosition": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/ReplicationStartingPositionType" + } + }, + "required": [], + "type": "object" + }, + "ReplicationStartingPositionType": { + "enum": [ + "LATEST", + "EARLIEST" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TopicReplication": { + "additionalProperties": false, + "properties": { + "CopyAccessControlListsForTopics": { + "type": "boolean" + }, + "CopyTopicConfigurations": { + "type": "boolean" + }, + "DetectAndCopyNewTopics": { + "type": "boolean" + }, + "StartingPosition": { + "$ref": "#/definitions/ReplicationStartingPosition" + }, + "TopicsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TopicsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TopicsToReplicate" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kafka:CreateReplicator", + "kafka:CreateReplicatorReference", + "kafka:DescribeClusterV2", + "kafka:DescribeReplicator", + "kafka:GetBootstrapBrokers", + "kafka:ListTagsForResource", + "kafka:TagResource" + ] + }, + "delete": { + "permissions": [ + "kafka:DeleteReplicator", + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:UntagResource" + ] + }, + "list": { + "permissions": [ + "kafka:ListReplicators" + ] + }, + "read": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:TagResource", + "kafka:UntagResource", + "kafka:UpdateReplicationInfo" + ] + } + }, + "primaryIdentifier": [ + "/properties/ReplicatorArn" + ], + "properties": { + "CurrentVersion": { + "type": "string" + }, + "Description": { + "maxLength": 1024, + "type": "string" + }, + "KafkaClusters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/KafkaCluster" + }, + "maxItems": 2, + "minItems": 2, + "type": "array", + "uniqueItems": true + }, + "ReplicationInfoList": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicationInfo" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ReplicatorArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "ReplicatorName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", + "type": "string" + }, + "ServiceExecutionRoleArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/ReplicatorArn" + ], + "required": [ + "ReplicatorName", + "ReplicationInfoList", + "KafkaClusters", + "ServiceExecutionRoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MSK::Replicator" +} 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 717714baba..4ac7de008c 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -640,6 +640,7 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -792,7 +793,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -810,6 +810,7 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", @@ -836,7 +837,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpointconnectionnotification.json", "aws-ec2-vpcendpointservice.json", @@ -912,7 +912,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -921,6 +920,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", @@ -931,6 +931,7 @@ "aws-guardduty-threatintelset.json", "aws-iam-group.json", "aws-iam-grouppolicy.json", + "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", @@ -990,6 +991,8 @@ "aws-mediaconnect-flowoutput.json", "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", + "aws-medialive-multiplex.json", + "aws-medialive-multiplexprogram.json", "aws-mediatailor-channel.json", "aws-mediatailor-channelpolicy.json", "aws-mediatailor-livesource.json", @@ -1037,7 +1040,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json deleted file mode 100644 index 99fa47be40..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "ResponseParameter": { - "additionalProperties": false, - "properties": { - "Destination": { - "type": "string" - }, - "Source": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameterList": { - "items": { - "$ref": "#/definitions/ResponseParameter" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "apigateway:POST" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE" - ] - }, - "list": { - "permissions": [ - "apigateway:GET" - ] - }, - "read": { - "permissions": [ - "apigateway:GET" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "apigateway:PUT" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApiId", - "/properties/IntegrationId" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IntegrationId": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "RequestTemplates": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "$ref": "#/definitions/ResponseParameterList" - } - }, - "type": "object" - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationId" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} 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_south_2/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} 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 85d0e0cfc5..80ec2a020a 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1404,7 +1404,6 @@ "aws-codeartifact-domain.json", "aws-codeartifact-packagegroup.json", "aws-codeartifact-repository.json", - "aws-codebuild-fleet.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", "aws-codebuild-sourcecredential.json", @@ -1513,11 +1512,14 @@ "aws-dax-parametergroup.json", "aws-dax-subnetgroup.json", "aws-deadline-farm.json", + "aws-deadline-fleet.json", "aws-deadline-licenseendpoint.json", "aws-deadline-meteredproduct.json", "aws-deadline-monitor.json", + "aws-deadline-queue.json", "aws-deadline-queueenvironment.json", "aws-deadline-queuefleetassociation.json", + "aws-deadline-storageprofile.json", "aws-detective-graph.json", "aws-detective-memberinvitation.json", "aws-detective-organizationadmin.json", @@ -1895,6 +1897,7 @@ "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", + "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", "aws-lambda-layerversion.json", "aws-lambda-layerversionpermission.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json new file mode 100644 index 0000000000..4c870f71c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codebuild-fleet.json @@ -0,0 +1,159 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "[a-zA-Z+-=._:/]+$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "codebuild:BatchGetFleets", + "codebuild:CreateFleet", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "codebuild:BatchGetFleets", + "codebuild:DeleteFleet" + ] + }, + "list": { + "permissions": [ + "codebuild:ListFleets" + ] + }, + "read": { + "permissions": [ + "codebuild:BatchGetFleets" + ] + }, + "update": { + "permissions": [ + "codebuild:BatchGetFleets", + "codebuild:UpdateFleet", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "minLength": 1, + "type": "string" + }, + "BaseCapacity": { + "minimum": 1, + "type": "integer" + }, + "ComputeType": { + "enum": [ + "BUILD_GENERAL1_SMALL", + "BUILD_GENERAL1_MEDIUM", + "BUILD_GENERAL1_LARGE", + "BUILD_GENERAL1_2XLARGE" + ], + "type": "string" + }, + "EnvironmentType": { + "enum": [ + "WINDOWS_SERVER_2019_CONTAINER", + "WINDOWS_SERVER_2022_CONTAINER", + "LINUX_CONTAINER", + "LINUX_GPU_CONTAINER", + "ARM_CONTAINER", + "MAC_ARM" + ], + "type": "string" + }, + "FleetServiceRole": { + "pattern": "^(?:arn:)[a-zA-Z+-=,._:/@]+$", + "type": "string" + }, + "FleetVpcConfig": { + "$ref": "#/definitions/VpcConfig" + }, + "ImageId": { + "pattern": "^((aws/codebuild/[A-Za-z-]+:[0-9]+(-[0-9._]+)?)|ami-[a-z0-9]{1,1020})$", + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 2, + "type": "string" + }, + "OverflowBehavior": { + "enum": [ + "QUEUE", + "ON_DEMAND" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::CodeBuild::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-queue.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-queue.json deleted file mode 100644 index bc404e7daf..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-queue.json +++ /dev/null @@ -1,279 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/FarmId" - ], - "definitions": { - "DefaultQueueBudgetAction": { - "default": "NONE", - "enum": [ - "NONE", - "STOP_SCHEDULING_AND_COMPLETE_TASKS", - "STOP_SCHEDULING_AND_CANCEL_TASKS" - ], - "type": "string" - }, - "JobAttachmentSettings": { - "additionalProperties": false, - "properties": { - "RootPrefix": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$)", - "type": "string" - } - }, - "required": [ - "RootPrefix", - "S3BucketName" - ], - "type": "object" - }, - "JobRunAsUser": { - "additionalProperties": false, - "properties": { - "Posix": { - "$ref": "#/definitions/PosixUser" - }, - "RunAs": { - "$ref": "#/definitions/RunAs" - }, - "Windows": { - "$ref": "#/definitions/WindowsUser" - } - }, - "required": [ - "RunAs" - ], - "type": "object" - }, - "PosixUser": { - "additionalProperties": false, - "properties": { - "Group": { - "maxLength": 31, - "minLength": 0, - "pattern": "^(?:[a-z][a-z0-9-]{0,30})?$", - "type": "string" - }, - "User": { - "maxLength": 31, - "minLength": 0, - "pattern": "^(?:[a-z][a-z0-9-]{0,30})?$", - "type": "string" - } - }, - "required": [ - "Group", - "User" - ], - "type": "object" - }, - "RunAs": { - "enum": [ - "QUEUE_CONFIGURED_USER", - "WORKER_AGENT_USER" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 127, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "WindowsUser": { - "additionalProperties": false, - "properties": { - "PasswordArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:(aws[a-zA-Z-]*):secretsmanager:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:secret:[a-zA-Z0-9-/_+=.@]{1,2028}$", - "type": "string" - }, - "User": { - "maxLength": 111, - "minLength": 0, - "pattern": "^[^\"'/\\[\\]:;|=,+*?<>\\s]*$", - "type": "string" - } - }, - "required": [ - "PasswordArn", - "User" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "deadline:CreateQueue", - "deadline:GetQueue", - "iam:PassRole", - "identitystore:ListGroupMembershipsForMember", - "logs:CreateLogGroup", - "s3:ListBucket", - "deadline:TagResource", - "deadline:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "deadline:DeleteQueue", - "deadline:GetQueue", - "identitystore:ListGroupMembershipsForMember" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "FarmId": { - "$ref": "resource-schema.json#/properties/FarmId" - } - }, - "required": [ - "FarmId" - ] - }, - "permissions": [ - "deadline:ListQueues", - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember" - ] - }, - "read": { - "permissions": [ - "deadline:GetQueue", - "identitystore:ListGroupMembershipsForMember", - "deadline:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "deadline:UpdateQueue", - "deadline:GetQueue", - "iam:PassRole", - "identitystore:ListGroupMembershipsForMember", - "logs:CreateLogGroup", - "s3:ListBucket", - "deadline:TagResource", - "deadline:UntagResource", - "deadline:ListTagsForResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "AllowedStorageProfileIds": { - "items": { - "pattern": "^sp-[0-9a-f]{32}$", - "type": "string" - }, - "maxItems": 20, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "pattern": "^arn:*", - "type": "string" - }, - "DefaultBudgetAction": { - "$ref": "#/definitions/DefaultQueueBudgetAction" - }, - "Description": { - "default": "", - "maxLength": 100, - "minLength": 0, - "type": "string" - }, - "DisplayName": { - "maxLength": 100, - "minLength": 1, - "type": "string" - }, - "FarmId": { - "pattern": "^farm-[0-9a-f]{32}$", - "type": "string" - }, - "JobAttachmentSettings": { - "$ref": "#/definitions/JobAttachmentSettings" - }, - "JobRunAsUser": { - "$ref": "#/definitions/JobRunAsUser" - }, - "QueueId": { - "pattern": "^queue-[0-9a-f]{32}$", - "type": "string" - }, - "RequiredFileSystemLocationNames": { - "items": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[0-9A-Za-z ]*$", - "type": "string" - }, - "maxItems": 20, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "RoleArn": { - "pattern": "^arn:(aws[a-zA-Z-]*):iam::\\d{12}:role(/[!-.0-~]+)*/[\\w+=,.@-]+$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/QueueId", - "/properties/Arn" - ], - "required": [ - "DisplayName" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", - "tagging": { - "cloudFormationSystemTags": true, - "permissions": [ - "deadline:TagResource", - "deadline:UntagResource", - "deadline:ListTagsForResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Deadline::Queue" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-storageprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-storageprofile.json deleted file mode 100644 index 47def71914..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-storageprofile.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/FarmId" - ], - "definitions": { - "FileSystemLocation": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[0-9A-Za-z ]*$", - "type": "string" - }, - "Path": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "Type": { - "$ref": "#/definitions/FileSystemLocationType" - } - }, - "required": [ - "Name", - "Path", - "Type" - ], - "type": "object" - }, - "FileSystemLocationType": { - "enum": [ - "SHARED", - "LOCAL" - ], - "type": "string" - }, - "StorageProfileOperatingSystemFamily": { - "enum": [ - "WINDOWS", - "LINUX", - "MACOS" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "deadline:CreateStorageProfile", - "deadline:GetStorageProfile", - "identitystore:ListGroupMembershipsForMember" - ] - }, - "delete": { - "permissions": [ - "deadline:DeleteStorageProfile", - "deadline:GetStorageProfile", - "identitystore:ListGroupMembershipsForMember" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "FarmId": { - "$ref": "resource-schema.json#/properties/FarmId" - } - }, - "required": [ - "FarmId" - ] - }, - "permissions": [ - "deadline:ListStorageProfiles", - "identitystore:ListGroupMembershipsForMember" - ] - }, - "read": { - "permissions": [ - "deadline:GetStorageProfile", - "identitystore:ListGroupMembershipsForMember" - ] - }, - "update": { - "permissions": [ - "deadline:UpdateStorageProfile", - "deadline:GetStorageProfile", - "identitystore:ListGroupMembershipsForMember" - ] - } - }, - "primaryIdentifier": [ - "/properties/FarmId", - "/properties/StorageProfileId" - ], - "properties": { - "DisplayName": { - "maxLength": 100, - "minLength": 1, - "type": "string" - }, - "FarmId": { - "pattern": "^farm-[0-9a-f]{32}$", - "type": "string" - }, - "FileSystemLocations": { - "items": { - "$ref": "#/definitions/FileSystemLocation" - }, - "maxItems": 20, - "minItems": 0, - "type": "array" - }, - "OsFamily": { - "$ref": "#/definitions/StorageProfileOperatingSystemFamily" - }, - "StorageProfileId": { - "pattern": "^sp-[0-9a-f]{32}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/StorageProfileId" - ], - "required": [ - "DisplayName", - "OsFamily" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Deadline::StorageProfile" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-lambda-eventsourcemapping.json deleted file mode 100644 index 90ac6114e9..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-lambda-eventsourcemapping.json +++ /dev/null @@ -1,359 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/EventSourceArn", - "/properties/StartingPosition", - "/properties/StartingPositionTimestamp", - "/properties/SelfManagedEventSource", - "/properties/AmazonManagedKafkaEventSourceConfig", - "/properties/SelfManagedKafkaEventSourceConfig" - ], - "definitions": { - "AmazonManagedKafkaEventSourceConfig": { - "additionalProperties": false, - "properties": { - "ConsumerGroupId": { - "$ref": "#/definitions/ConsumerGroupId" - } - }, - "type": "object" - }, - "ConsumerGroupId": { - "maxLength": 200, - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", - "type": "string" - }, - "DestinationConfig": { - "additionalProperties": false, - "properties": { - "OnFailure": { - "$ref": "#/definitions/OnFailure" - } - }, - "type": "object" - }, - "DocumentDBEventSourceConfig": { - "additionalProperties": false, - "properties": { - "CollectionName": { - "maxLength": 57, - "minLength": 1, - "type": "string" - }, - "DatabaseName": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "FullDocument": { - "enum": [ - "UpdateLookup", - "Default" - ], - "type": "string" - } - }, - "type": "object" - }, - "Endpoints": { - "additionalProperties": false, - "properties": { - "KafkaBootstrapServers": { - "items": { - "maxLength": 300, - "minLength": 1, - "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Filter": { - "additionalProperties": false, - "properties": { - "Pattern": { - "maxLength": 4096, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "FilterCriteria": { - "additionalProperties": false, - "properties": { - "Filters": { - "items": { - "$ref": "#/definitions/Filter" - }, - "maxItems": 20, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "MaximumConcurrency": { - "maximum": 1000, - "minimum": 2, - "type": "integer" - }, - "OnFailure": { - "additionalProperties": false, - "properties": { - "Destination": { - "maxLength": 1024, - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "type": "string" - } - }, - "type": "object" - }, - "ScalingConfig": { - "additionalProperties": false, - "properties": { - "MaximumConcurrency": { - "$ref": "#/definitions/MaximumConcurrency" - } - }, - "type": "object" - }, - "SelfManagedEventSource": { - "additionalProperties": false, - "properties": { - "Endpoints": { - "$ref": "#/definitions/Endpoints" - } - }, - "type": "object" - }, - "SelfManagedKafkaEventSourceConfig": { - "additionalProperties": false, - "properties": { - "ConsumerGroupId": { - "$ref": "#/definitions/ConsumerGroupId" - } - }, - "type": "object" - }, - "SourceAccessConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "BASIC_AUTH", - "VPC_SUBNET", - "VPC_SECURITY_GROUP", - "SASL_SCRAM_512_AUTH", - "SASL_SCRAM_256_AUTH", - "VIRTUAL_HOST", - "CLIENT_CERTIFICATE_TLS_AUTH", - "SERVER_ROOT_CA_CERTIFICATE" - ], - "type": "string" - }, - "URI": { - "maxLength": 200, - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "lambda:CreateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - }, - "delete": { - "permissions": [ - "lambda:DeleteEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - }, - "list": { - "permissions": [ - "lambda:ListEventSourceMappings" - ] - }, - "read": { - "permissions": [ - "lambda:GetEventSourceMapping" - ] - }, - "update": { - "permissions": [ - "lambda:UpdateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AmazonManagedKafkaEventSourceConfig": { - "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig" - }, - "BatchSize": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "BisectBatchOnFunctionError": { - "type": "boolean" - }, - "DestinationConfig": { - "$ref": "#/definitions/DestinationConfig" - }, - "DocumentDBEventSourceConfig": { - "$ref": "#/definitions/DocumentDBEventSourceConfig" - }, - "Enabled": { - "type": "boolean" - }, - "EventSourceArn": { - "maxLength": 1024, - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "type": "string" - }, - "FilterCriteria": { - "$ref": "#/definitions/FilterCriteria" - }, - "FunctionName": { - "maxLength": 140, - "minLength": 1, - "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", - "type": "string" - }, - "FunctionResponseTypes": { - "items": { - "enum": [ - "ReportBatchItemFailures" - ], - "type": "string" - }, - "maxLength": 1, - "minLength": 0, - "type": "array", - "uniqueItems": true - }, - "Id": { - "maxLength": 36, - "minLength": 36, - "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", - "type": "string" - }, - "MaximumBatchingWindowInSeconds": { - "maximum": 300, - "minimum": 0, - "type": "integer" - }, - "MaximumRecordAgeInSeconds": { - "maximum": 604800, - "minimum": -1, - "type": "integer" - }, - "MaximumRetryAttempts": { - "maximum": 10000, - "minimum": -1, - "type": "integer" - }, - "ParallelizationFactor": { - "maximum": 10, - "minimum": 1, - "type": "integer" - }, - "Queues": { - "items": { - "maxLength": 1000, - "minLength": 1, - "pattern": "[\\s\\S]*", - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ScalingConfig": { - "$ref": "#/definitions/ScalingConfig" - }, - "SelfManagedEventSource": { - "$ref": "#/definitions/SelfManagedEventSource" - }, - "SelfManagedKafkaEventSourceConfig": { - "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig" - }, - "SourceAccessConfigurations": { - "items": { - "$ref": "#/definitions/SourceAccessConfiguration" - }, - "maxItems": 22, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "StartingPosition": { - "enum": [ - "AT_TIMESTAMP", - "LATEST", - "TRIM_HORIZON" - ], - "maxLength": 12, - "minLength": 6, - "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", - "type": "string" - }, - "StartingPositionTimestamp": { - "type": "number" - }, - "Topics": { - "items": { - "maxLength": 249, - "minLength": 1, - "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TumblingWindowInSeconds": { - "maximum": 900, - "minimum": 0, - "type": "integer" - } - }, - "propertyTransform": { - "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "FunctionName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Lambda::EventSourceMapping" -} 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 b217f3f392..fdc5e32df1 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1264,7 +1264,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1541,7 +1540,6 @@ "aws-dax-parametergroup.json", "aws-dax-subnetgroup.json", "aws-deadline-farm.json", - "aws-deadline-fleet.json", "aws-deadline-licenseendpoint.json", "aws-deadline-meteredproduct.json", "aws-deadline-monitor.json", @@ -1656,7 +1654,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1778,7 +1775,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1827,6 +1823,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", @@ -1942,6 +1939,7 @@ "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", + "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", "aws-lambda-layerversion.json", "aws-lambda-layerversionpermission.json", @@ -1965,7 +1963,6 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", - "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -2035,7 +2032,6 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", - "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -2152,7 +2148,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..e7b7290e95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigatewayv2-integration.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RequestTemplates": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "ResponseParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-deadline-fleet.json similarity index 99% rename from src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-fleet.json rename to src/cfnlint/data/schemas/providers/ap_southeast_2/aws-deadline-fleet.json index 5fa78cdcc1..4a335d541a 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-deadline-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-deadline-fleet.json @@ -566,6 +566,7 @@ "required": [ "Configuration", "DisplayName", + "FarmId", "MaxWorkerCount", "RoleArn" ], diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iam-managedpolicy.json deleted file mode 100644 index f913eca461..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iam-managedpolicy.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ManagedPolicyName", - "/properties/Description", - "/properties/Path" - ], - "handlers": { - "create": { - "permissions": [ - "iam:CreatePolicy", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - }, - "delete": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:DeletePolicyVersion", - "iam:DeletePolicy", - "iam:ListEntitiesForPolicy" - ] - }, - "list": { - "permissions": [ - "iam:ListPolicies" - ] - }, - "read": { - "permissions": [ - "iam:GetPolicy", - "iam:ListEntitiesForPolicy", - "iam:GetPolicyVersion" - ] - }, - "update": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:CreatePolicyVersion", - "iam:DeletePolicyVersion", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/PolicyArn" - ], - "properties": { - "AttachmentCount": { - "type": "integer" - }, - "CreateDate": { - "type": "string" - }, - "DefaultVersionId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Groups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "IsAttachable": { - "type": "boolean" - }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { - "pattern": "^/(.+/)*$", - "type": "string" - }, - "PermissionsBoundaryUsageCount": { - "type": "integer" - }, - "PolicyArn": { - "type": "string" - }, - "PolicyDocument": { - "maxLength": 6144, - "type": [ - "object", - "string" - ] - }, - "PolicyId": { - "type": "string" - }, - "Roles": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "UpdateDate": { - "type": "string" - }, - "Users": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/PolicyArn", - "/properties/AttachmentCount", - "/properties/CreateDate", - "/properties/DefaultVersionId", - "/properties/IsAttachable", - "/properties/PermissionsBoundaryUsageCount", - "/properties/PolicyId", - "/properties/UpdateDate" - ], - "required": [ - "PolicyDocument" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::IAM::ManagedPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-lambda-eventsourcemapping.json deleted file mode 100644 index 90ac6114e9..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-lambda-eventsourcemapping.json +++ /dev/null @@ -1,359 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/EventSourceArn", - "/properties/StartingPosition", - "/properties/StartingPositionTimestamp", - "/properties/SelfManagedEventSource", - "/properties/AmazonManagedKafkaEventSourceConfig", - "/properties/SelfManagedKafkaEventSourceConfig" - ], - "definitions": { - "AmazonManagedKafkaEventSourceConfig": { - "additionalProperties": false, - "properties": { - "ConsumerGroupId": { - "$ref": "#/definitions/ConsumerGroupId" - } - }, - "type": "object" - }, - "ConsumerGroupId": { - "maxLength": 200, - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", - "type": "string" - }, - "DestinationConfig": { - "additionalProperties": false, - "properties": { - "OnFailure": { - "$ref": "#/definitions/OnFailure" - } - }, - "type": "object" - }, - "DocumentDBEventSourceConfig": { - "additionalProperties": false, - "properties": { - "CollectionName": { - "maxLength": 57, - "minLength": 1, - "type": "string" - }, - "DatabaseName": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "FullDocument": { - "enum": [ - "UpdateLookup", - "Default" - ], - "type": "string" - } - }, - "type": "object" - }, - "Endpoints": { - "additionalProperties": false, - "properties": { - "KafkaBootstrapServers": { - "items": { - "maxLength": 300, - "minLength": 1, - "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Filter": { - "additionalProperties": false, - "properties": { - "Pattern": { - "maxLength": 4096, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "FilterCriteria": { - "additionalProperties": false, - "properties": { - "Filters": { - "items": { - "$ref": "#/definitions/Filter" - }, - "maxItems": 20, - "minItems": 1, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "MaximumConcurrency": { - "maximum": 1000, - "minimum": 2, - "type": "integer" - }, - "OnFailure": { - "additionalProperties": false, - "properties": { - "Destination": { - "maxLength": 1024, - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "type": "string" - } - }, - "type": "object" - }, - "ScalingConfig": { - "additionalProperties": false, - "properties": { - "MaximumConcurrency": { - "$ref": "#/definitions/MaximumConcurrency" - } - }, - "type": "object" - }, - "SelfManagedEventSource": { - "additionalProperties": false, - "properties": { - "Endpoints": { - "$ref": "#/definitions/Endpoints" - } - }, - "type": "object" - }, - "SelfManagedKafkaEventSourceConfig": { - "additionalProperties": false, - "properties": { - "ConsumerGroupId": { - "$ref": "#/definitions/ConsumerGroupId" - } - }, - "type": "object" - }, - "SourceAccessConfiguration": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "BASIC_AUTH", - "VPC_SUBNET", - "VPC_SECURITY_GROUP", - "SASL_SCRAM_512_AUTH", - "SASL_SCRAM_256_AUTH", - "VIRTUAL_HOST", - "CLIENT_CERTIFICATE_TLS_AUTH", - "SERVER_ROOT_CA_CERTIFICATE" - ], - "type": "string" - }, - "URI": { - "maxLength": 200, - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "lambda:CreateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - }, - "delete": { - "permissions": [ - "lambda:DeleteEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - }, - "list": { - "permissions": [ - "lambda:ListEventSourceMappings" - ] - }, - "read": { - "permissions": [ - "lambda:GetEventSourceMapping" - ] - }, - "update": { - "permissions": [ - "lambda:UpdateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AmazonManagedKafkaEventSourceConfig": { - "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig" - }, - "BatchSize": { - "maximum": 10000, - "minimum": 1, - "type": "integer" - }, - "BisectBatchOnFunctionError": { - "type": "boolean" - }, - "DestinationConfig": { - "$ref": "#/definitions/DestinationConfig" - }, - "DocumentDBEventSourceConfig": { - "$ref": "#/definitions/DocumentDBEventSourceConfig" - }, - "Enabled": { - "type": "boolean" - }, - "EventSourceArn": { - "maxLength": 1024, - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "type": "string" - }, - "FilterCriteria": { - "$ref": "#/definitions/FilterCriteria" - }, - "FunctionName": { - "maxLength": 140, - "minLength": 1, - "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", - "type": "string" - }, - "FunctionResponseTypes": { - "items": { - "enum": [ - "ReportBatchItemFailures" - ], - "type": "string" - }, - "maxLength": 1, - "minLength": 0, - "type": "array", - "uniqueItems": true - }, - "Id": { - "maxLength": 36, - "minLength": 36, - "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", - "type": "string" - }, - "MaximumBatchingWindowInSeconds": { - "maximum": 300, - "minimum": 0, - "type": "integer" - }, - "MaximumRecordAgeInSeconds": { - "maximum": 604800, - "minimum": -1, - "type": "integer" - }, - "MaximumRetryAttempts": { - "maximum": 10000, - "minimum": -1, - "type": "integer" - }, - "ParallelizationFactor": { - "maximum": 10, - "minimum": 1, - "type": "integer" - }, - "Queues": { - "items": { - "maxLength": 1000, - "minLength": 1, - "pattern": "[\\s\\S]*", - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "ScalingConfig": { - "$ref": "#/definitions/ScalingConfig" - }, - "SelfManagedEventSource": { - "$ref": "#/definitions/SelfManagedEventSource" - }, - "SelfManagedKafkaEventSourceConfig": { - "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig" - }, - "SourceAccessConfigurations": { - "items": { - "$ref": "#/definitions/SourceAccessConfiguration" - }, - "maxItems": 22, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "StartingPosition": { - "enum": [ - "AT_TIMESTAMP", - "LATEST", - "TRIM_HORIZON" - ], - "maxLength": 12, - "minLength": 6, - "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", - "type": "string" - }, - "StartingPositionTimestamp": { - "type": "number" - }, - "Topics": { - "items": { - "maxLength": 249, - "minLength": 1, - "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "TumblingWindowInSeconds": { - "maximum": 900, - "minimum": 0, - "type": "integer" - } - }, - "propertyTransform": { - "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "FunctionName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Lambda::EventSourceMapping" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-location-apikey.json new file mode 100644 index 0000000000..b41c88be08 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-location-apikey.json @@ -0,0 +1,226 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyName" + ], + "definitions": { + "ApiKeyRestrictions": { + "additionalProperties": false, + "properties": { + "AllowActions": { + "insertionOrder": false, + "items": { + "maxLength": 200, + "minLength": 5, + "pattern": "^geo:\\w*\\*?$", + "type": "string" + }, + "maxItems": 7, + "minItems": 1, + "type": "array" + }, + "AllowReferers": { + "insertionOrder": false, + "items": { + "maxLength": 253, + "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "AllowResources": { + "insertionOrder": false, + "items": { + "maxLength": 1600, + "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "AllowActions", + "AllowResources" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", + "type": "string" + } + }, + "type": "object" + }, + "iso8601UTC": { + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "geo:CreateKey", + "geo:DescribeKey", + "geo:TagResource", + "geo:UntagResource", + "geo:GetMapTile", + "geo:GetMapStyleDescriptor", + "geo:GetMapSprites", + "geo:GetMapGlyphs", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace", + "geo:CalculateRoute", + "geo:CalculateRouteMatrix" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteKey", + "geo:DescribeKey" + ] + }, + "list": { + "permissions": [ + "geo:ListKeys" + ] + }, + "read": { + "permissions": [ + "geo:DescribeKey" + ] + }, + "update": { + "permissions": [ + "geo:CreateKey", + "geo:DescribeKey", + "geo:TagResource", + "geo:UntagResource", + "geo:GetMapTile", + "geo:GetMapStyleDescriptor", + "geo:GetMapSprites", + "geo:GetMapGlyphs", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace", + "geo:CalculateRoute", + "geo:CalculateRouteMatrix", + "geo:UpdateKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/KeyName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "ExpireTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "ForceDelete": { + "type": "boolean" + }, + "ForceUpdate": { + "type": "boolean" + }, + "KeyArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "KeyName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "NoExpiry": { + "type": "boolean" + }, + "Restrictions": { + "$ref": "#/definitions/ApiKeyRestrictions" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/KeyArn", + "/properties/UpdateTime" + ], + "required": [ + "KeyName", + "Restrictions" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::APIKey", + "writeOnlyProperties": [ + "/properties/ForceUpdate", + "/properties/ForceDelete", + "/properties/NoExpiry" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json new file mode 100644 index 0000000000..442dc3b3a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-msk-replicator.json @@ -0,0 +1,349 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ReplicatorName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ReplicatorName", + "/properties/Description", + "/properties/KafkaClusters", + "/properties/ServiceExecutionRoleArn", + "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" + ], + "definitions": { + "AmazonMskCluster": { + "additionalProperties": false, + "properties": { + "MskClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + } + }, + "required": [ + "MskClusterArn" + ], + "type": "object" + }, + "ConsumerGroupReplication": { + "additionalProperties": false, + "properties": { + "ConsumerGroupsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ConsumerGroupsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "DetectAndCopyNewConsumerGroups": { + "type": "boolean" + }, + "SynchroniseConsumerGroupOffsets": { + "type": "boolean" + } + }, + "required": [ + "ConsumerGroupsToReplicate" + ], + "type": "object" + }, + "KafkaCluster": { + "additionalProperties": false, + "properties": { + "AmazonMskCluster": { + "$ref": "#/definitions/AmazonMskCluster" + }, + "VpcConfig": { + "$ref": "#/definitions/KafkaClusterClientVpcConfig" + } + }, + "required": [ + "AmazonMskCluster", + "VpcConfig" + ], + "type": "object" + }, + "KafkaClusterClientVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 3, + "minItems": 2, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "ReplicationInfo": { + "additionalProperties": false, + "properties": { + "ConsumerGroupReplication": { + "$ref": "#/definitions/ConsumerGroupReplication" + }, + "SourceKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TargetCompressionType": { + "enum": [ + "NONE", + "GZIP", + "SNAPPY", + "LZ4", + "ZSTD" + ], + "type": "string" + }, + "TargetKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TopicReplication": { + "$ref": "#/definitions/TopicReplication" + } + }, + "required": [ + "SourceKafkaClusterArn", + "TargetKafkaClusterArn", + "TopicReplication", + "ConsumerGroupReplication", + "TargetCompressionType" + ], + "type": "object" + }, + "ReplicationStartingPosition": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/ReplicationStartingPositionType" + } + }, + "required": [], + "type": "object" + }, + "ReplicationStartingPositionType": { + "enum": [ + "LATEST", + "EARLIEST" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TopicReplication": { + "additionalProperties": false, + "properties": { + "CopyAccessControlListsForTopics": { + "type": "boolean" + }, + "CopyTopicConfigurations": { + "type": "boolean" + }, + "DetectAndCopyNewTopics": { + "type": "boolean" + }, + "StartingPosition": { + "$ref": "#/definitions/ReplicationStartingPosition" + }, + "TopicsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TopicsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TopicsToReplicate" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kafka:CreateReplicator", + "kafka:CreateReplicatorReference", + "kafka:DescribeClusterV2", + "kafka:DescribeReplicator", + "kafka:GetBootstrapBrokers", + "kafka:ListTagsForResource", + "kafka:TagResource" + ] + }, + "delete": { + "permissions": [ + "kafka:DeleteReplicator", + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:UntagResource" + ] + }, + "list": { + "permissions": [ + "kafka:ListReplicators" + ] + }, + "read": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:TagResource", + "kafka:UntagResource", + "kafka:UpdateReplicationInfo" + ] + } + }, + "primaryIdentifier": [ + "/properties/ReplicatorArn" + ], + "properties": { + "CurrentVersion": { + "type": "string" + }, + "Description": { + "maxLength": 1024, + "type": "string" + }, + "KafkaClusters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/KafkaCluster" + }, + "maxItems": 2, + "minItems": 2, + "type": "array", + "uniqueItems": true + }, + "ReplicationInfoList": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicationInfo" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ReplicatorArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "ReplicatorName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", + "type": "string" + }, + "ServiceExecutionRoleArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/ReplicatorArn" + ], + "required": [ + "ReplicatorName", + "ReplicationInfoList", + "KafkaClusters", + "ServiceExecutionRoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MSK::Replicator" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} 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 4c6d28bca9..da6a1a255c 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -720,6 +720,7 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -824,6 +825,8 @@ "aws-cognito-identitypool.json", "aws-cognito-identitypoolprincipaltag.json", "aws-cognito-identitypoolroleattachment.json", + "aws-cognito-logdeliveryconfiguration.json", + "aws-cognito-userpool.json", "aws-cognito-userpoolclient.json", "aws-cognito-userpooldomain.json", "aws-cognito-userpoolgroup.json", @@ -879,7 +882,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -906,6 +908,7 @@ "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-spotfleet.json", "aws-ec2-subnet.json", + "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -931,7 +934,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1018,7 +1020,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1027,6 +1028,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", @@ -1166,7 +1168,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", @@ -1311,6 +1312,7 @@ "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-synthetics-canary.json", + "aws-systemsmanagersap-application.json", "aws-transfer-agreement.json", "aws-transfer-certificate.json", "aws-transfer-connector.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json deleted file mode 100644 index 99fa47be40..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "ResponseParameter": { - "additionalProperties": false, - "properties": { - "Destination": { - "type": "string" - }, - "Source": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameterList": { - "items": { - "$ref": "#/definitions/ResponseParameter" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "apigateway:POST" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE" - ] - }, - "list": { - "permissions": [ - "apigateway:GET" - ] - }, - "read": { - "permissions": [ - "apigateway:GET" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "apigateway:PUT" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApiId", - "/properties/IntegrationId" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IntegrationId": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "RequestTemplates": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "$ref": "#/definitions/ResponseParameterList" - } - }, - "type": "object" - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationId" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-logdeliveryconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-logdeliveryconfiguration.json deleted file mode 100644 index a83e0bcce0..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-logdeliveryconfiguration.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId" - ], - "definitions": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "$ref": "#/definitions/CloudWatchLogsConfiguration" - }, - "EventSource": { - "type": "string" - }, - "LogLevel": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfigurations": { - "items": { - "$ref": "#/definitions/LogConfiguration" - }, - "type": "array" - } - }, - "handlers": { - "create": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - }, - "delete": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - }, - "read": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration" - ] - }, - "update": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "LogConfigurations": { - "$ref": "#/definitions/LogConfigurations" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Cognito::LogDeliveryConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json deleted file mode 100644 index d035f0721a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json +++ /dev/null @@ -1,529 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AccountRecoverySetting": { - "additionalProperties": false, - "properties": { - "RecoveryMechanisms": { - "items": { - "$ref": "#/definitions/RecoveryOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "integer" - } - }, - "type": "object" - }, - "CustomEmailSender": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "CustomSMSSender": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "DeviceConfiguration": { - "additionalProperties": false, - "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" - }, - "DeviceOnlyRememberedOnUserPrompt": { - "type": "boolean" - } - }, - "type": "object" - }, - "EmailConfiguration": { - "additionalProperties": false, - "properties": { - "ConfigurationSet": { - "type": "string" - }, - "EmailSendingAccount": { - "type": "string" - }, - "From": { - "type": "string" - }, - "ReplyToEmailAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - } - }, - "type": "object" - }, - "InviteMessageTemplate": { - "additionalProperties": false, - "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { - "type": "string" - }, - "SMSMessage": { - "type": "string" - } - }, - "type": "object" - }, - "LambdaConfig": { - "additionalProperties": false, - "properties": { - "CreateAuthChallenge": { - "type": "string" - }, - "CustomEmailSender": { - "$ref": "#/definitions/CustomEmailSender" - }, - "CustomMessage": { - "type": "string" - }, - "CustomSMSSender": { - "$ref": "#/definitions/CustomSMSSender" - }, - "DefineAuthChallenge": { - "type": "string" - }, - "KMSKeyID": { - "type": "string" - }, - "PostAuthentication": { - "type": "string" - }, - "PostConfirmation": { - "type": "string" - }, - "PreAuthentication": { - "type": "string" - }, - "PreSignUp": { - "type": "string" - }, - "PreTokenGeneration": { - "type": "string" - }, - "PreTokenGenerationConfig": { - "$ref": "#/definitions/PreTokenGenerationConfig" - }, - "UserMigration": { - "type": "string" - }, - "VerifyAuthChallengeResponse": { - "type": "string" - } - }, - "type": "object" - }, - "NumberAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxValue": { - "type": "string" - }, - "MinValue": { - "type": "string" - } - }, - "type": "object" - }, - "PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "integer" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - }, - "TemporaryPasswordValidityDays": { - "type": "integer" - } - }, - "type": "object" - }, - "Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/PasswordPolicy" - } - }, - "type": "object" - }, - "PreTokenGenerationConfig": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "RecoveryOption": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Priority": { - "type": "integer" - } - }, - "type": "object" - }, - "SchemaAttribute": { - "additionalProperties": false, - "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" - }, - "Mutable": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/StringAttributeConstraints" - } - }, - "type": "object" - }, - "SmsConfiguration": { - "additionalProperties": false, - "properties": { - "ExternalId": { - "type": "string" - }, - "SnsCallerArn": { - "type": "string" - }, - "SnsRegion": { - "type": "string" - } - }, - "type": "object" - }, - "StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { - "type": "string" - }, - "MinLength": { - "type": "string" - } - }, - "type": "object" - }, - "UserAttributeUpdateSettings": { - "additionalProperties": false, - "properties": { - "AttributesRequireVerificationBeforeUpdate": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "AttributesRequireVerificationBeforeUpdate" - ], - "type": "object" - }, - "UserPoolAddOns": { - "additionalProperties": false, - "properties": { - "AdvancedSecurityMode": { - "type": "string" - } - }, - "type": "object" - }, - "UsernameConfiguration": { - "additionalProperties": false, - "properties": { - "CaseSensitive": { - "type": "boolean" - } - }, - "type": "object" - }, - "VerificationMessageTemplate": { - "additionalProperties": false, - "properties": { - "DefaultEmailOption": { - "type": "string" - }, - "EmailMessage": { - "type": "string" - }, - "EmailMessageByLink": { - "type": "string" - }, - "EmailSubject": { - "type": "string" - }, - "EmailSubjectByLink": { - "type": "string" - }, - "SmsMessage": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "cognito-idp:CreateUserPool", - "iam:PassRole", - "cognito-idp:SetUserPoolMfaConfig", - "cognito-idp:DescribeUserPool", - "kms:CreateGrant", - "iam:CreateServiceLinkedRole" - ], - "timeoutInMinutes": 2 - }, - "delete": { - "permissions": [ - "cognito-idp:DeleteUserPool" - ], - "timeoutInMinutes": 2 - }, - "list": { - "permissions": [ - "cognito-idp:ListUserPools" - ] - }, - "read": { - "permissions": [ - "cognito-idp:DescribeUserPool" - ] - }, - "update": { - "permissions": [ - "cognito-idp:UpdateUserPool", - "cognito-idp:ListTagsForResource", - "cognito-idp:UntagResource", - "cognito-idp:TagResource", - "cognito-idp:SetUserPoolMfaConfig", - "cognito-idp:AddCustomAttributes", - "cognito-idp:DescribeUserPool", - "iam:PassRole" - ], - "timeoutInMinutes": 2 - } - }, - "primaryIdentifier": [ - "/properties/UserPoolId" - ], - "properties": { - "AccountRecoverySetting": { - "$ref": "#/definitions/AccountRecoverySetting" - }, - "AdminCreateUserConfig": { - "$ref": "#/definitions/AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "enum": [ - "email", - "phone_number", - "preferred_username" - ], - "type": "string" - }, - "type": "array" - }, - "Arn": { - "type": "string" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeletionProtection": { - "type": "string" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/EmailConfiguration" - }, - "EmailVerificationMessage": { - "maxLength": 20000, - "minLength": 6, - "type": "string" - }, - "EmailVerificationSubject": { - "maxLength": 140, - "minLength": 1, - "type": "string" - }, - "EnabledMfas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LambdaConfig": { - "$ref": "#/definitions/LambdaConfig" - }, - "MfaConfiguration": { - "enum": [ - "OFF", - "ON", - "OPTIONAL" - ], - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/Policies" - }, - "ProviderName": { - "type": "string" - }, - "ProviderURL": { - "type": "string" - }, - "Schema": { - "items": { - "$ref": "#/definitions/SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "maxLength": 140, - "minLength": 6, - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/SmsConfiguration" - }, - "SmsVerificationMessage": { - "maxLength": 140, - "minLength": 6, - "type": "string" - }, - "UserAttributeUpdateSettings": { - "$ref": "#/definitions/UserAttributeUpdateSettings" - }, - "UserPoolAddOns": { - "$ref": "#/definitions/UserPoolAddOns" - }, - "UserPoolId": { - "type": "string" - }, - "UserPoolName": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "UserPoolTags": { - "additionalProperties": false, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { - "type": "string" - } - }, - "type": "object" - }, - "UsernameAttributes": { - "items": { - "enum": [ - "email", - "phone_number" - ], - "type": "string" - }, - "type": "array" - }, - "UsernameConfiguration": { - "$ref": "#/definitions/UsernameConfiguration" - }, - "VerificationMessageTemplate": { - "$ref": "#/definitions/VerificationMessageTemplate" - } - }, - "propertyTransform": { - "/properties/Schema/*/Name": "'custom:' & '' & Name" - }, - "readOnlyProperties": [ - "/properties/ProviderName", - "/properties/UserPoolId", - "/properties/ProviderURL", - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/UserPoolTags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Cognito::UserPool", - "writeOnlyProperties": [ - "/properties/EnabledMfas" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetcidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetcidrblock.json deleted file mode 100644 index 500d506d74..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-subnetcidrblock.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Ipv6CidrBlock", - "/properties/SubnetId", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:AssociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "delete": { - "permissions": [ - "ec2:DisassociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSubnets" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSubnets" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "maxLength": 42, - "type": "string" - }, - "Ipv6IpamPoolId": { - "type": "string" - }, - "Ipv6NetmaskLength": { - "maximum": 128, - "minimum": 0, - "type": "integer" - }, - "SubnetId": { - "type": "string" - } - }, - "propertyTransform": { - "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SubnetId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::SubnetCidrBlock", - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} 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_3/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-systemsmanagersap-application.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-systemsmanagersap-application.json deleted file mode 100644 index 4a0937c197..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-systemsmanagersap-application.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ], - "definitions": { - "Credential": { - "additionalProperties": false, - "properties": { - "CredentialType": { - "enum": [ - "ADMIN" - ], - "type": "string" - }, - "DatabaseName": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - }, - "SecretId": { - "pattern": "^(?=.{1,100}$).*", - "type": "string" - } - }, - "type": "object" - }, - "Instance": { - "pattern": "^i-[\\w\\d]{8}$|^i-[\\w\\d]{17}$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ssm-sap:RegisterApplication", - "ssm-sap:GetApplication", - "ssm-sap:TagResource", - "ssm-sap:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "ssm-sap:DeregisterApplication", - "ssm-sap:GetApplication" - ] - }, - "list": { - "permissions": [ - "ssm-sap:ListApplications" - ] - }, - "read": { - "permissions": [ - "ssm-sap:GetApplication", - "ssm-sap:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "ssm-sap:TagResource", - "ssm-sap:UntagResource", - "ssm-sap:ListTagsForResource", - "ssm-sap:GetApplication" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "ApplicationId": { - "pattern": "[\\w\\d]{1,50}", - "type": "string" - }, - "ApplicationType": { - "enum": [ - "HANA" - ], - "type": "string" - }, - "Arn": { - "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", - "type": "string" - }, - "Credentials": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Credential" - }, - "minItems": 1, - "type": "array" - }, - "Instances": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Instance" - }, - "minItems": 1, - "type": "array" - }, - "SapInstanceNumber": { - "pattern": "[0-9]{2}", - "type": "string" - }, - "Sid": { - "pattern": "[A-Z][A-Z0-9]{2}", - "type": "string" - }, - "Tags": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ApplicationId", - "ApplicationType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SystemsManagerSAP::Application", - "writeOnlyProperties": [ - "/properties/Credentials", - "/properties/Instances", - "/properties/SapInstanceNumber", - "/properties/Sid" - ] -} 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 050b08fcf1..58745399d1 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -639,6 +639,7 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -782,7 +783,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -804,6 +804,7 @@ "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", "aws-ec2-subnet.json", + "aws-ec2-subnetcidrblock.json", "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", @@ -824,7 +825,6 @@ "aws-ec2-transitgatewayvpcattachment.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpointconnectionnotification.json", "aws-ec2-vpcendpointservice.json", @@ -897,7 +897,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -906,6 +905,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", @@ -953,7 +953,6 @@ "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", @@ -1035,7 +1034,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json deleted file mode 100644 index 99fa47be40..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "ResponseParameter": { - "additionalProperties": false, - "properties": { - "Destination": { - "type": "string" - }, - "Source": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameterList": { - "items": { - "$ref": "#/definitions/ResponseParameter" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "apigateway:POST" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE" - ] - }, - "list": { - "permissions": [ - "apigateway:GET" - ] - }, - "read": { - "permissions": [ - "apigateway:GET" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "apigateway:PUT" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApiId", - "/properties/IntegrationId" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IntegrationId": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "RequestTemplates": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "$ref": "#/definitions/ResponseParameterList" - } - }, - "type": "object" - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationId" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnetcidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnetcidrblock.json deleted file mode 100644 index 500d506d74..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-subnetcidrblock.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Ipv6CidrBlock", - "/properties/SubnetId", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:AssociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "delete": { - "permissions": [ - "ec2:DisassociateSubnetCidrBlock", - "ec2:DescribeSubnets" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSubnets" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSubnets" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "Ipv6CidrBlock": { - "maxLength": 42, - "type": "string" - }, - "Ipv6IpamPoolId": { - "type": "string" - }, - "Ipv6NetmaskLength": { - "maximum": 128, - "minimum": 0, - "type": "integer" - }, - "SubnetId": { - "type": "string" - } - }, - "propertyTransform": { - "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "SubnetId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::EC2::SubnetCidrBlock", - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} 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/eu_west_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-function.json similarity index 95% rename from src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json rename to src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-function.json index 56c061bb52..d7aa0b43a0 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-function.json @@ -165,13 +165,6 @@ }, "type": "object" }, - "RecursiveLoop": { - "enum": [ - "Allow", - "Terminate" - ], - "type": "string" - }, "RuntimeManagementConfig": { "additionalProperties": false, "properties": { @@ -310,9 +303,7 @@ "lambda:GetLayerVersion", "lambda:GetRuntimeManagementConfig", "lambda:PutRuntimeManagementConfig", - "lambda:TagResource", - "lambda:PutFunctionRecursionConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:TagResource" ] }, "delete": { @@ -330,8 +321,7 @@ "read": { "permissions": [ "lambda:GetFunction", - "lambda:GetFunctionCodeSigningConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionCodeSigningConfig" ] }, "update": { @@ -359,9 +349,7 @@ "lambda:PutFunctionCodeSigningConfig", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetCodeSigningConfig", - "lambda:GetFunctionCodeSigningConfig", - "lambda:PutFunctionRecursionConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionCodeSigningConfig" ] } }, @@ -453,9 +441,6 @@ ], "type": "string" }, - "RecursiveLoop": { - "$ref": "#/definitions/RecursiveLoop" - }, "ReservedConcurrentExecutions": { "minimum": 0, "type": "integer" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} 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 76198a03ef..30dc256eab 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1132,7 +1132,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -1414,7 +1413,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -1442,6 +1440,7 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", @@ -1474,7 +1473,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1576,7 +1574,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1589,6 +1586,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", @@ -1603,6 +1601,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", @@ -1718,7 +1717,6 @@ "aws-lightsail-loadbalancer.json", "aws-lightsail-loadbalancertlscertificate.json", "aws-lightsail-staticip.json", - "aws-location-apikey.json", "aws-location-geofencecollection.json", "aws-location-map.json", "aws-location-placeindex.json", @@ -1782,7 +1780,6 @@ "aws-msk-cluster.json", "aws-msk-clusterpolicy.json", "aws-msk-configuration.json", - "aws-msk-replicator.json", "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", @@ -1892,7 +1889,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..e7b7290e95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-apigatewayv2-integration.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RequestTemplates": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "ResponseParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-securitygroup.json deleted file mode 100644 index 6713650d36..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} 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_central_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iam-managedpolicy.json deleted file mode 100644 index f913eca461..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-iam-managedpolicy.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ManagedPolicyName", - "/properties/Description", - "/properties/Path" - ], - "handlers": { - "create": { - "permissions": [ - "iam:CreatePolicy", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - }, - "delete": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:DeletePolicyVersion", - "iam:DeletePolicy", - "iam:ListEntitiesForPolicy" - ] - }, - "list": { - "permissions": [ - "iam:ListPolicies" - ] - }, - "read": { - "permissions": [ - "iam:GetPolicy", - "iam:ListEntitiesForPolicy", - "iam:GetPolicyVersion" - ] - }, - "update": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:CreatePolicyVersion", - "iam:DeletePolicyVersion", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/PolicyArn" - ], - "properties": { - "AttachmentCount": { - "type": "integer" - }, - "CreateDate": { - "type": "string" - }, - "DefaultVersionId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Groups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "IsAttachable": { - "type": "boolean" - }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { - "pattern": "^/(.+/)*$", - "type": "string" - }, - "PermissionsBoundaryUsageCount": { - "type": "integer" - }, - "PolicyArn": { - "type": "string" - }, - "PolicyDocument": { - "maxLength": 6144, - "type": [ - "object", - "string" - ] - }, - "PolicyId": { - "type": "string" - }, - "Roles": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "UpdateDate": { - "type": "string" - }, - "Users": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/PolicyArn", - "/properties/AttachmentCount", - "/properties/CreateDate", - "/properties/DefaultVersionId", - "/properties/IsAttachable", - "/properties/PermissionsBoundaryUsageCount", - "/properties/PolicyId", - "/properties/UpdateDate" - ], - "required": [ - "PolicyDocument" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::IAM::ManagedPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json new file mode 100644 index 0000000000..b41c88be08 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json @@ -0,0 +1,226 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyName" + ], + "definitions": { + "ApiKeyRestrictions": { + "additionalProperties": false, + "properties": { + "AllowActions": { + "insertionOrder": false, + "items": { + "maxLength": 200, + "minLength": 5, + "pattern": "^geo:\\w*\\*?$", + "type": "string" + }, + "maxItems": 7, + "minItems": 1, + "type": "array" + }, + "AllowReferers": { + "insertionOrder": false, + "items": { + "maxLength": 253, + "pattern": "^([$\\-._+!*`(),;/?:@=&\\w]|%([0-9a-fA-F?]{2}|[0-9a-fA-F?]?[*]))+$", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "AllowResources": { + "insertionOrder": false, + "items": { + "maxLength": 1600, + "pattern": "(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$)|(^arn(:[a-z0-9]+([.-][a-z0-9]+)*):(geo-routes|geo-places|geo-maps)(:((\\*)|([a-z0-9]+([.-][a-z0-9]+)*)))::((provider[\\/][*-._\\w]+))$)", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "AllowActions", + "AllowResources" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", + "type": "string" + } + }, + "type": "object" + }, + "iso8601UTC": { + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "geo:CreateKey", + "geo:DescribeKey", + "geo:TagResource", + "geo:UntagResource", + "geo:GetMapTile", + "geo:GetMapStyleDescriptor", + "geo:GetMapSprites", + "geo:GetMapGlyphs", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace", + "geo:CalculateRoute", + "geo:CalculateRouteMatrix" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteKey", + "geo:DescribeKey" + ] + }, + "list": { + "permissions": [ + "geo:ListKeys" + ] + }, + "read": { + "permissions": [ + "geo:DescribeKey" + ] + }, + "update": { + "permissions": [ + "geo:CreateKey", + "geo:DescribeKey", + "geo:TagResource", + "geo:UntagResource", + "geo:GetMapTile", + "geo:GetMapStyleDescriptor", + "geo:GetMapSprites", + "geo:GetMapGlyphs", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace", + "geo:CalculateRoute", + "geo:CalculateRouteMatrix", + "geo:UpdateKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/KeyName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "ExpireTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "ForceDelete": { + "type": "boolean" + }, + "ForceUpdate": { + "type": "boolean" + }, + "KeyArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "KeyName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "NoExpiry": { + "type": "boolean" + }, + "Restrictions": { + "$ref": "#/definitions/ApiKeyRestrictions" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/KeyArn", + "/properties/UpdateTime" + ], + "required": [ + "KeyName", + "Restrictions" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::APIKey", + "writeOnlyProperties": [ + "/properties/ForceUpdate", + "/properties/ForceDelete", + "/properties/NoExpiry" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json new file mode 100644 index 0000000000..442dc3b3a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-msk-replicator.json @@ -0,0 +1,349 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/ReplicatorName" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ReplicatorName", + "/properties/Description", + "/properties/KafkaClusters", + "/properties/ServiceExecutionRoleArn", + "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition/Type" + ], + "definitions": { + "AmazonMskCluster": { + "additionalProperties": false, + "properties": { + "MskClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + } + }, + "required": [ + "MskClusterArn" + ], + "type": "object" + }, + "ConsumerGroupReplication": { + "additionalProperties": false, + "properties": { + "ConsumerGroupsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ConsumerGroupsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 256, + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "DetectAndCopyNewConsumerGroups": { + "type": "boolean" + }, + "SynchroniseConsumerGroupOffsets": { + "type": "boolean" + } + }, + "required": [ + "ConsumerGroupsToReplicate" + ], + "type": "object" + }, + "KafkaCluster": { + "additionalProperties": false, + "properties": { + "AmazonMskCluster": { + "$ref": "#/definitions/AmazonMskCluster" + }, + "VpcConfig": { + "$ref": "#/definitions/KafkaClusterClientVpcConfig" + } + }, + "required": [ + "AmazonMskCluster", + "VpcConfig" + ], + "type": "object" + }, + "KafkaClusterClientVpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 3, + "minItems": 2, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "ReplicationInfo": { + "additionalProperties": false, + "properties": { + "ConsumerGroupReplication": { + "$ref": "#/definitions/ConsumerGroupReplication" + }, + "SourceKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TargetCompressionType": { + "enum": [ + "NONE", + "GZIP", + "SNAPPY", + "LZ4", + "ZSTD" + ], + "type": "string" + }, + "TargetKafkaClusterArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "TopicReplication": { + "$ref": "#/definitions/TopicReplication" + } + }, + "required": [ + "SourceKafkaClusterArn", + "TargetKafkaClusterArn", + "TopicReplication", + "ConsumerGroupReplication", + "TargetCompressionType" + ], + "type": "object" + }, + "ReplicationStartingPosition": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/ReplicationStartingPositionType" + } + }, + "required": [], + "type": "object" + }, + "ReplicationStartingPositionType": { + "enum": [ + "LATEST", + "EARLIEST" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TopicReplication": { + "additionalProperties": false, + "properties": { + "CopyAccessControlListsForTopics": { + "type": "boolean" + }, + "CopyTopicConfigurations": { + "type": "boolean" + }, + "DetectAndCopyNewTopics": { + "type": "boolean" + }, + "StartingPosition": { + "$ref": "#/definitions/ReplicationStartingPosition" + }, + "TopicsToExclude": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TopicsToReplicate": { + "insertionOrder": false, + "items": { + "maxLength": 249, + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TopicsToReplicate" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kafka:CreateReplicator", + "kafka:CreateReplicatorReference", + "kafka:DescribeClusterV2", + "kafka:DescribeReplicator", + "kafka:GetBootstrapBrokers", + "kafka:ListTagsForResource", + "kafka:TagResource" + ] + }, + "delete": { + "permissions": [ + "kafka:DeleteReplicator", + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:UntagResource" + ] + }, + "list": { + "permissions": [ + "kafka:ListReplicators" + ] + }, + "read": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "kafka:DescribeReplicator", + "kafka:ListTagsForResource", + "kafka:TagResource", + "kafka:UntagResource", + "kafka:UpdateReplicationInfo" + ] + } + }, + "primaryIdentifier": [ + "/properties/ReplicatorArn" + ], + "properties": { + "CurrentVersion": { + "type": "string" + }, + "Description": { + "maxLength": 1024, + "type": "string" + }, + "KafkaClusters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/KafkaCluster" + }, + "maxItems": 2, + "minItems": 2, + "type": "array", + "uniqueItems": true + }, + "ReplicationInfoList": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicationInfo" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ReplicatorArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):kafka:.*", + "type": "string" + }, + "ReplicatorName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[0-9A-Za-z][0-9A-Za-z-]{0,}$", + "type": "string" + }, + "ServiceExecutionRoleArn": { + "pattern": "arn:(aws|aws-us-gov|aws-cn):iam:.*", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/ReplicatorArn" + ], + "required": [ + "ReplicatorName", + "ReplicationInfoList", + "KafkaClusters", + "ServiceExecutionRoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-msk-replicator.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::MSK::Replicator" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-globalcluster.json new file mode 100644 index 0000000000..9cf0aaadab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-globalcluster.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GlobalClusterIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/Engine" + ], + "handlers": { + "create": { + "permissions": [ + "rds:CreateGlobalCluster", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters" + ] + }, + "delete": { + "permissions": [ + "rds:DescribeGlobalClusters", + "rds:DeleteGlobalCluster", + "rds:RemoveFromGlobalCluster", + "rds:DescribeDBClusters" + ] + }, + "list": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeGlobalClusters" + ] + }, + "update": { + "permissions": [ + "rds:ModifyGlobalCluster", + "rds:DescribeGlobalClusters" + ] + } + }, + "oneOf": [ + { + "required": [ + "SourceDBClusterIdentifier" + ] + }, + { + "required": [ + "Engine" + ] + } + ], + "primaryIdentifier": [ + "/properties/GlobalClusterIdentifier" + ], + "properties": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "enum": [ + "aurora", + "aurora-mysql", + "aurora-postgresql" + ], + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "oneOf": [ + { + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" + }, + { + "pattern": "^(?=.{40,128}$)arn.*" + } + ], + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "propertyTransform": { + "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::GlobalCluster" +} 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 1491067395..c3b6be5b4f 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -478,6 +478,8 @@ "AWS::SSM::Parameter", "AWS::SSM::PatchBaseline", "AWS::SSM::ResourceDataSync", + "AWS::SSO::Application", + "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", "AWS::SSO::Instance", "AWS::SSO::InstanceAccessControlAttributeConfiguration", @@ -558,6 +560,7 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", + "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -626,6 +629,8 @@ "aws-cognito-identitypool.json", "aws-cognito-identitypoolprincipaltag.json", "aws-cognito-identitypoolroleattachment.json", + "aws-cognito-logdeliveryconfiguration.json", + "aws-cognito-userpool.json", "aws-cognito-userpoolclient.json", "aws-cognito-userpoolgroup.json", "aws-cognito-userpoolriskconfigurationattachment.json", @@ -675,7 +680,6 @@ "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-instance.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -715,7 +719,6 @@ "aws-ec2-transitgatewayroutetablepropagation.json", "aws-ec2-transitgatewayvpcattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpointconnectionnotification.json", "aws-ec2-vpcendpointservice.json", @@ -782,7 +785,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -800,7 +802,6 @@ "aws-guardduty-member.json", "aws-guardduty-threatintelset.json", "aws-iam-grouppolicy.json", - "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-rolepolicy.json", "aws-iam-samlprovider.json", @@ -833,7 +834,6 @@ "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", @@ -966,6 +966,8 @@ "aws-ssm-parameter.json", "aws-ssm-patchbaseline.json", "aws-ssm-resourcedatasync.json", + "aws-sso-application.json", + "aws-sso-applicationassignment.json", "aws-sso-assignment.json", "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json deleted file mode 100644 index 99fa47be40..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigatewayv2-integration.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiId" - ], - "definitions": { - "ResponseParameter": { - "additionalProperties": false, - "properties": { - "Destination": { - "type": "string" - }, - "Source": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameterList": { - "items": { - "$ref": "#/definitions/ResponseParameter" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "apigateway:POST" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE" - ] - }, - "list": { - "permissions": [ - "apigateway:GET" - ] - }, - "read": { - "permissions": [ - "apigateway:GET" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "apigateway:PUT" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApiId", - "/properties/IntegrationId" - ], - "properties": { - "ApiId": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "ContentHandlingStrategy": { - "type": "string" - }, - "CredentialsArn": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "IntegrationId": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "IntegrationSubtype": { - "type": "string" - }, - "IntegrationType": { - "type": "string" - }, - "IntegrationUri": { - "type": "string" - }, - "PassthroughBehavior": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "RequestParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "RequestTemplates": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameters": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "$ref": "#/definitions/ResponseParameterList" - } - }, - "type": "object" - }, - "TemplateSelectionExpression": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "integer" - }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" - } - }, - "readOnlyProperties": [ - "/properties/IntegrationId" - ], - "required": [ - "ApiId", - "IntegrationType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ApiGatewayV2::Integration" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-logdeliveryconfiguration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-logdeliveryconfiguration.json deleted file mode 100644 index a83e0bcce0..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-logdeliveryconfiguration.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId" - ], - "definitions": { - "CloudWatchLogsConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfiguration": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsConfiguration": { - "$ref": "#/definitions/CloudWatchLogsConfiguration" - }, - "EventSource": { - "type": "string" - }, - "LogLevel": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfigurations": { - "items": { - "$ref": "#/definitions/LogConfiguration" - }, - "type": "array" - } - }, - "handlers": { - "create": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - }, - "delete": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - }, - "read": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration" - ] - }, - "update": { - "permissions": [ - "cognito-idp:GetLogDeliveryConfiguration", - "cognito-idp:SetLogDeliveryConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" - ], - "timeoutInMinutes": 2 - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "LogConfigurations": { - "$ref": "#/definitions/LogConfigurations" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::Cognito::LogDeliveryConfiguration" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-userpool.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-userpool.json deleted file mode 100644 index d035f0721a..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cognito-userpool.json +++ /dev/null @@ -1,529 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AccountRecoverySetting": { - "additionalProperties": false, - "properties": { - "RecoveryMechanisms": { - "items": { - "$ref": "#/definitions/RecoveryOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "AdminCreateUserConfig": { - "additionalProperties": false, - "properties": { - "AllowAdminCreateUserOnly": { - "type": "boolean" - }, - "InviteMessageTemplate": { - "$ref": "#/definitions/InviteMessageTemplate" - }, - "UnusedAccountValidityDays": { - "type": "integer" - } - }, - "type": "object" - }, - "CustomEmailSender": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "CustomSMSSender": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "DeviceConfiguration": { - "additionalProperties": false, - "properties": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" - }, - "DeviceOnlyRememberedOnUserPrompt": { - "type": "boolean" - } - }, - "type": "object" - }, - "EmailConfiguration": { - "additionalProperties": false, - "properties": { - "ConfigurationSet": { - "type": "string" - }, - "EmailSendingAccount": { - "type": "string" - }, - "From": { - "type": "string" - }, - "ReplyToEmailAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - } - }, - "type": "object" - }, - "InviteMessageTemplate": { - "additionalProperties": false, - "properties": { - "EmailMessage": { - "type": "string" - }, - "EmailSubject": { - "type": "string" - }, - "SMSMessage": { - "type": "string" - } - }, - "type": "object" - }, - "LambdaConfig": { - "additionalProperties": false, - "properties": { - "CreateAuthChallenge": { - "type": "string" - }, - "CustomEmailSender": { - "$ref": "#/definitions/CustomEmailSender" - }, - "CustomMessage": { - "type": "string" - }, - "CustomSMSSender": { - "$ref": "#/definitions/CustomSMSSender" - }, - "DefineAuthChallenge": { - "type": "string" - }, - "KMSKeyID": { - "type": "string" - }, - "PostAuthentication": { - "type": "string" - }, - "PostConfirmation": { - "type": "string" - }, - "PreAuthentication": { - "type": "string" - }, - "PreSignUp": { - "type": "string" - }, - "PreTokenGeneration": { - "type": "string" - }, - "PreTokenGenerationConfig": { - "$ref": "#/definitions/PreTokenGenerationConfig" - }, - "UserMigration": { - "type": "string" - }, - "VerifyAuthChallengeResponse": { - "type": "string" - } - }, - "type": "object" - }, - "NumberAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxValue": { - "type": "string" - }, - "MinValue": { - "type": "string" - } - }, - "type": "object" - }, - "PasswordPolicy": { - "additionalProperties": false, - "properties": { - "MinimumLength": { - "type": "integer" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - }, - "RequireUppercase": { - "type": "boolean" - }, - "TemporaryPasswordValidityDays": { - "type": "integer" - } - }, - "type": "object" - }, - "Policies": { - "additionalProperties": false, - "properties": { - "PasswordPolicy": { - "$ref": "#/definitions/PasswordPolicy" - } - }, - "type": "object" - }, - "PreTokenGenerationConfig": { - "additionalProperties": false, - "properties": { - "LambdaArn": { - "type": "string" - }, - "LambdaVersion": { - "type": "string" - } - }, - "type": "object" - }, - "RecoveryOption": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Priority": { - "type": "integer" - } - }, - "type": "object" - }, - "SchemaAttribute": { - "additionalProperties": false, - "properties": { - "AttributeDataType": { - "type": "string" - }, - "DeveloperOnlyAttribute": { - "type": "boolean" - }, - "Mutable": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "NumberAttributeConstraints": { - "$ref": "#/definitions/NumberAttributeConstraints" - }, - "Required": { - "type": "boolean" - }, - "StringAttributeConstraints": { - "$ref": "#/definitions/StringAttributeConstraints" - } - }, - "type": "object" - }, - "SmsConfiguration": { - "additionalProperties": false, - "properties": { - "ExternalId": { - "type": "string" - }, - "SnsCallerArn": { - "type": "string" - }, - "SnsRegion": { - "type": "string" - } - }, - "type": "object" - }, - "StringAttributeConstraints": { - "additionalProperties": false, - "properties": { - "MaxLength": { - "type": "string" - }, - "MinLength": { - "type": "string" - } - }, - "type": "object" - }, - "UserAttributeUpdateSettings": { - "additionalProperties": false, - "properties": { - "AttributesRequireVerificationBeforeUpdate": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "AttributesRequireVerificationBeforeUpdate" - ], - "type": "object" - }, - "UserPoolAddOns": { - "additionalProperties": false, - "properties": { - "AdvancedSecurityMode": { - "type": "string" - } - }, - "type": "object" - }, - "UsernameConfiguration": { - "additionalProperties": false, - "properties": { - "CaseSensitive": { - "type": "boolean" - } - }, - "type": "object" - }, - "VerificationMessageTemplate": { - "additionalProperties": false, - "properties": { - "DefaultEmailOption": { - "type": "string" - }, - "EmailMessage": { - "type": "string" - }, - "EmailMessageByLink": { - "type": "string" - }, - "EmailSubject": { - "type": "string" - }, - "EmailSubjectByLink": { - "type": "string" - }, - "SmsMessage": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "cognito-idp:CreateUserPool", - "iam:PassRole", - "cognito-idp:SetUserPoolMfaConfig", - "cognito-idp:DescribeUserPool", - "kms:CreateGrant", - "iam:CreateServiceLinkedRole" - ], - "timeoutInMinutes": 2 - }, - "delete": { - "permissions": [ - "cognito-idp:DeleteUserPool" - ], - "timeoutInMinutes": 2 - }, - "list": { - "permissions": [ - "cognito-idp:ListUserPools" - ] - }, - "read": { - "permissions": [ - "cognito-idp:DescribeUserPool" - ] - }, - "update": { - "permissions": [ - "cognito-idp:UpdateUserPool", - "cognito-idp:ListTagsForResource", - "cognito-idp:UntagResource", - "cognito-idp:TagResource", - "cognito-idp:SetUserPoolMfaConfig", - "cognito-idp:AddCustomAttributes", - "cognito-idp:DescribeUserPool", - "iam:PassRole" - ], - "timeoutInMinutes": 2 - } - }, - "primaryIdentifier": [ - "/properties/UserPoolId" - ], - "properties": { - "AccountRecoverySetting": { - "$ref": "#/definitions/AccountRecoverySetting" - }, - "AdminCreateUserConfig": { - "$ref": "#/definitions/AdminCreateUserConfig" - }, - "AliasAttributes": { - "items": { - "enum": [ - "email", - "phone_number", - "preferred_username" - ], - "type": "string" - }, - "type": "array" - }, - "Arn": { - "type": "string" - }, - "AutoVerifiedAttributes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DeletionProtection": { - "type": "string" - }, - "DeviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration" - }, - "EmailConfiguration": { - "$ref": "#/definitions/EmailConfiguration" - }, - "EmailVerificationMessage": { - "maxLength": 20000, - "minLength": 6, - "type": "string" - }, - "EmailVerificationSubject": { - "maxLength": 140, - "minLength": 1, - "type": "string" - }, - "EnabledMfas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "LambdaConfig": { - "$ref": "#/definitions/LambdaConfig" - }, - "MfaConfiguration": { - "enum": [ - "OFF", - "ON", - "OPTIONAL" - ], - "type": "string" - }, - "Policies": { - "$ref": "#/definitions/Policies" - }, - "ProviderName": { - "type": "string" - }, - "ProviderURL": { - "type": "string" - }, - "Schema": { - "items": { - "$ref": "#/definitions/SchemaAttribute" - }, - "type": "array" - }, - "SmsAuthenticationMessage": { - "maxLength": 140, - "minLength": 6, - "type": "string" - }, - "SmsConfiguration": { - "$ref": "#/definitions/SmsConfiguration" - }, - "SmsVerificationMessage": { - "maxLength": 140, - "minLength": 6, - "type": "string" - }, - "UserAttributeUpdateSettings": { - "$ref": "#/definitions/UserAttributeUpdateSettings" - }, - "UserPoolAddOns": { - "$ref": "#/definitions/UserPoolAddOns" - }, - "UserPoolId": { - "type": "string" - }, - "UserPoolName": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "UserPoolTags": { - "additionalProperties": false, - "patternProperties": { - "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { - "type": "string" - } - }, - "type": "object" - }, - "UsernameAttributes": { - "items": { - "enum": [ - "email", - "phone_number" - ], - "type": "string" - }, - "type": "array" - }, - "UsernameConfiguration": { - "$ref": "#/definitions/UsernameConfiguration" - }, - "VerificationMessageTemplate": { - "$ref": "#/definitions/VerificationMessageTemplate" - } - }, - "propertyTransform": { - "/properties/Schema/*/Name": "'custom:' & '' & Name" - }, - "readOnlyProperties": [ - "/properties/ProviderName", - "/properties/UserPoolId", - "/properties/ProviderURL", - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/UserPoolTags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Cognito::UserPool", - "writeOnlyProperties": [ - "/properties/EnabledMfas" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json similarity index 99% rename from src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-managedpolicy.json rename to src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json index f913eca461..b1e35e5257 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-managedpolicy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json @@ -84,6 +84,7 @@ "type": "string" }, "Path": { + "default": "/", "pattern": "^/(.+/)*$", "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json similarity index 95% rename from src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-function.json rename to src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json index 56c061bb52..d7aa0b43a0 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-function.json @@ -165,13 +165,6 @@ }, "type": "object" }, - "RecursiveLoop": { - "enum": [ - "Allow", - "Terminate" - ], - "type": "string" - }, "RuntimeManagementConfig": { "additionalProperties": false, "properties": { @@ -310,9 +303,7 @@ "lambda:GetLayerVersion", "lambda:GetRuntimeManagementConfig", "lambda:PutRuntimeManagementConfig", - "lambda:TagResource", - "lambda:PutFunctionRecursionConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:TagResource" ] }, "delete": { @@ -330,8 +321,7 @@ "read": { "permissions": [ "lambda:GetFunction", - "lambda:GetFunctionCodeSigningConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionCodeSigningConfig" ] }, "update": { @@ -359,9 +349,7 @@ "lambda:PutFunctionCodeSigningConfig", "lambda:DeleteFunctionCodeSigningConfig", "lambda:GetCodeSigningConfig", - "lambda:GetFunctionCodeSigningConfig", - "lambda:PutFunctionRecursionConfig", - "lambda:GetFunctionRecursionConfig" + "lambda:GetFunctionCodeSigningConfig" ] } }, @@ -453,9 +441,6 @@ ], "type": "string" }, - "RecursiveLoop": { - "$ref": "#/definitions/RecursiveLoop" - }, "ReservedConcurrentExecutions": { "minimum": 0, "type": "integer" 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 e6bdf32ecc..7484a185e3 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -742,12 +742,12 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", "aws-apigatewayv2-routeresponse.json", "aws-apigatewayv2-stage.json", + "aws-apigatewayv2-vpclink.json", "aws-appconfig-application.json", "aws-appconfig-configurationprofile.json", "aws-appconfig-deployment.json", @@ -891,6 +891,7 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", + "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -935,6 +936,7 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", + "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -1018,7 +1020,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1061,6 +1062,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-managedpolicy.json", "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", @@ -1253,6 +1255,7 @@ "aws-s3-accessgrantsinstance.json", "aws-s3-accessgrantslocation.json", "aws-s3-accesspoint.json", + "aws-s3-bucket.json", "aws-s3-bucketpolicy.json", "aws-s3-storagelens.json", "aws-s3-storagelensgroup.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..e7b7290e95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-integration.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RequestTemplates": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "ResponseParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-vpclink.json deleted file mode 100644 index 73f797afd9..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-apigatewayv2-vpclink.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/SecurityGroupIds", - "/properties/SubnetIds" - ], - "handlers": { - "create": { - "permissions": [ - "apigateway:POST", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "delete": { - "permissions": [ - "apigateway:GET", - "apigateway:DELETE", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "list": { - "permissions": [ - "apigateway:GET", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "read": { - "permissions": [ - "apigateway:GET", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - }, - "update": { - "permissions": [ - "apigateway:PATCH", - "apigateway:GET", - "iam:CreateServiceLinkedRole", - "iam:DeleteServiceLinkedRole", - "iam:GetServiceLinkedRoleDeletionStatus" - ] - } - }, - "primaryIdentifier": [ - "/properties/VpcLinkId" - ], - "properties": { - "Name": { - "type": "string" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, - "type": "object" - }, - "VpcLinkId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/VpcLinkId" - ], - "required": [ - "SubnetIds", - "Name" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ApiGatewayV2::VpcLink" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iam-managedpolicy.json deleted file mode 100644 index 718cfd232e..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iam-managedpolicy.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ManagedPolicyName", - "/properties/Description", - "/properties/Path" - ], - "handlers": { - "create": { - "permissions": [ - "iam:CreatePolicy", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - }, - "delete": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:DeletePolicyVersion", - "iam:DeletePolicy", - "iam:ListEntitiesForPolicy" - ] - }, - "list": { - "permissions": [ - "iam:ListPolicies" - ] - }, - "read": { - "permissions": [ - "iam:GetPolicy", - "iam:ListEntitiesForPolicy", - "iam:GetPolicyVersion" - ] - }, - "update": { - "permissions": [ - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:ListPolicyVersions", - "iam:DetachGroupPolicy", - "iam:DetachUserPolicy", - "iam:CreatePolicyVersion", - "iam:DeletePolicyVersion", - "iam:AttachGroupPolicy", - "iam:AttachUserPolicy", - "iam:AttachRolePolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/PolicyArn" - ], - "properties": { - "AttachmentCount": { - "type": "integer" - }, - "CreateDate": { - "type": "string" - }, - "DefaultVersionId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Groups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "IsAttachable": { - "type": "boolean" - }, - "ManagedPolicyName": { - "type": "string" - }, - "Path": { - "default": "/", - "pattern": "^/(.+/)*$", - "type": "string" - }, - "PermissionsBoundaryUsageCount": { - "type": "integer" - }, - "PolicyArn": { - "type": "string" - }, - "PolicyDocument": { - "maxLength": 6144, - "type": [ - "object", - "string" - ] - }, - "PolicyId": { - "type": "string" - }, - "Roles": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "UpdateDate": { - "type": "string" - }, - "Users": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/PolicyArn", - "/properties/AttachmentCount", - "/properties/CreateDate", - "/properties/DefaultVersionId", - "/properties/IsAttachable", - "/properties/PermissionsBoundaryUsageCount", - "/properties/PolicyId", - "/properties/UpdateDate" - ], - "replacementStrategy": "delete_then_create", - "required": [ - "PolicyDocument" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::IAM::ManagedPolicy" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json deleted file mode 100644 index 18697645f3..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json +++ /dev/null @@ -1,1561 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BucketName" - ], - "definitions": { - "AbortIncompleteMultipartUpload": { - "additionalProperties": false, - "properties": { - "DaysAfterInitiation": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "DaysAfterInitiation" - ], - "type": "object" - }, - "AccelerateConfiguration": { - "additionalProperties": false, - "properties": { - "AccelerationStatus": { - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "AccelerationStatus" - ], - "type": "object" - }, - "AccessControlTranslation": { - "additionalProperties": false, - "properties": { - "Owner": { - "const": "Destination", - "type": "string" - } - }, - "required": [ - "Owner" - ], - "type": "object" - }, - "AnalyticsConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "StorageClassAnalysis", - "Id" - ], - "type": "object" - }, - "Arn": { - "type": "string" - }, - "BucketEncryption": { - "additionalProperties": false, - "properties": { - "ServerSideEncryptionConfiguration": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "ServerSideEncryptionConfiguration" - ], - "type": "object" - }, - "CorsConfiguration": { - "additionalProperties": false, - "properties": { - "CorsRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "CorsRules" - ], - "type": "object" - }, - "CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedMethods": { - "insertionOrder": true, - "items": { - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AllowedOrigins": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ExposedHeaders": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "MaxAge": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AllowedMethods", - "AllowedOrigins" - ], - "type": "object" - }, - "DataExport": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "OutputSchemaVersion": { - "const": "V_1", - "type": "string" - } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ], - "type": "object" - }, - "DefaultRetention": { - "additionalProperties": false, - "properties": { - "Days": { - "type": "integer" - }, - "Mode": { - "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "type": "string" - }, - "Years": { - "type": "integer" - } - }, - "type": "object" - }, - "DeleteMarkerReplication": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "type": "object" - }, - "Destination": { - "additionalProperties": false, - "properties": { - "BucketAccountId": { - "type": "string" - }, - "BucketArn": { - "type": "string" - }, - "Format": { - "enum": [ - "CSV", - "ORC", - "Parquet" - ], - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "BucketArn", - "Format" - ], - "type": "object" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "properties": { - "ReplicaKmsKeyID": { - "type": "string" - } - }, - "required": [ - "ReplicaKmsKeyID" - ], - "type": "object" - }, - "EventBridgeConfiguration": { - "additionalProperties": false, - "properties": { - "EventBridgeEnabled": { - "default": "true", - "type": "boolean" - } - }, - "required": [ - "EventBridgeEnabled" - ], - "type": "object" - }, - "FilterRule": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 1024, - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Name" - ], - "type": "object" - }, - "IntelligentTieringConfiguration": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Tierings": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Tiering" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id", - "Status", - "Tierings" - ], - "type": "object" - }, - "InventoryConfiguration": { - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/Destination" - }, - "Enabled": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "IncludedObjectVersions": { - "enum": [ - "All", - "Current" - ], - "type": "string" - }, - "OptionalFields": { - "insertionOrder": true, - "items": { - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm", - "ObjectAccessControlList", - "ObjectOwner" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Prefix": { - "type": "string" - }, - "ScheduleFrequency": { - "enum": [ - "Daily", - "Weekly" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "type": "object" - }, - "LambdaConfiguration": { - "additionalProperties": false, - "properties": { - "Event": { - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter" - }, - "Function": { - "type": "string" - } - }, - "required": [ - "Function", - "Event" - ], - "type": "object" - }, - "LifecycleConfiguration": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "DestinationBucketName": { - "type": "string" - }, - "LogFilePrefix": { - "type": "string" - }, - "TargetObjectKeyFormat": { - "$ref": "#/definitions/TargetObjectKeyFormat" - } - }, - "type": "object" - }, - "Metrics": { - "additionalProperties": false, - "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "MetricsConfiguration": { - "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Id" - ], - "type": "object" - }, - "NoncurrentVersionExpiration": { - "additionalProperties": false, - "properties": { - "NewerNoncurrentVersions": { - "type": "integer" - }, - "NoncurrentDays": { - "type": "integer" - } - }, - "required": [ - "NoncurrentDays" - ], - "type": "object" - }, - "NoncurrentVersionTransition": { - "additionalProperties": false, - "properties": { - "NewerNoncurrentVersions": { - "type": "integer" - }, - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass", - "TransitionInDays" - ], - "type": "object" - }, - "NotificationConfiguration": { - "additionalProperties": false, - "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration" - }, - "LambdaConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "QueueConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "TopicConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "NotificationFilter": { - "additionalProperties": false, - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter" - } - }, - "required": [ - "S3Key" - ], - "type": "object" - }, - "ObjectLockConfiguration": { - "additionalProperties": false, - "properties": { - "ObjectLockEnabled": { - "const": "Enabled", - "type": "string" - }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule" - } - }, - "type": "object" - }, - "ObjectLockRule": { - "additionalProperties": false, - "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention" - } - }, - "type": "object" - }, - "OwnershipControls": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "OwnershipControlsRule": { - "additionalProperties": false, - "properties": { - "ObjectOwnership": { - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ], - "type": "string" - } - }, - "type": "object" - }, - "PartitionedPrefix": { - "additionalProperties": false, - "properties": { - "PartitionDateSource": { - "enum": [ - "EventTime", - "DeliveryTime" - ], - "type": "string" - } - }, - "type": "object" - }, - "PublicAccessBlockConfiguration": { - "additionalProperties": false, - "properties": { - "BlockPublicAcls": { - "type": "boolean" - }, - "BlockPublicPolicy": { - "type": "boolean" - }, - "IgnorePublicAcls": { - "type": "boolean" - }, - "RestrictPublicBuckets": { - "type": "boolean" - } - }, - "type": "object" - }, - "QueueConfiguration": { - "additionalProperties": false, - "properties": { - "Event": { - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter" - }, - "Queue": { - "type": "string" - } - }, - "required": [ - "Event", - "Queue" - ], - "type": "object" - }, - "RedirectAllRequestsTo": { - "additionalProperties": false, - "dependentExcluded": { - "RedirectAllRequestsTo": [ - "ErrorDocument", - "IndexDocument", - "RoutingRules" - ] - }, - "properties": { - "HostName": { - "type": "string" - }, - "Protocol": { - "enum": [ - "http", - "https" - ], - "type": "string" - } - }, - "required": [ - "HostName" - ], - "type": "object" - }, - "RedirectRule": { - "additionalProperties": false, - "properties": { - "HostName": { - "type": "string" - }, - "HttpRedirectCode": { - "type": "string" - }, - "Protocol": { - "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "type": "string" - }, - "ReplaceKeyWith": { - "type": "string" - } - }, - "type": "object" - }, - "ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "ReplicationConfiguration": { - "additionalProperties": false, - "properties": { - "Role": { - "type": "string" - }, - "Rules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Role", - "Rules" - ], - "type": "object" - }, - "ReplicationDestination": { - "additionalProperties": false, - "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation" - }, - "Account": { - "type": "string" - }, - "Bucket": { - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "Metrics": { - "$ref": "#/definitions/Metrics" - }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime" - }, - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - } - }, - "required": [ - "Bucket" - ], - "type": "object" - }, - "ReplicationRule": { - "additionalProperties": false, - "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication" - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination" - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "Prefix": { - "maxLength": 1024, - "type": "string" - }, - "Priority": { - "type": "integer" - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria" - }, - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Destination", - "Status" - ], - "type": "object" - }, - "ReplicationRuleAndOperator": { - "additionalProperties": false, - "properties": { - "Prefix": { - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ReplicationRuleFilter": { - "additionalProperties": false, - "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator" - }, - "Prefix": { - "type": "string" - }, - "TagFilter": { - "$ref": "#/definitions/TagFilter" - } - }, - "type": "object" - }, - "ReplicationTime": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue" - } - }, - "required": [ - "Status", - "Time" - ], - "type": "object" - }, - "ReplicationTimeValue": { - "additionalProperties": false, - "properties": { - "Minutes": { - "type": "integer" - } - }, - "required": [ - "Minutes" - ], - "type": "object" - }, - "RoutingRule": { - "additionalProperties": false, - "properties": { - "RedirectRule": { - "$ref": "#/definitions/RedirectRule" - }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition" - } - }, - "required": [ - "RedirectRule" - ], - "type": "object" - }, - "RoutingRuleCondition": { - "additionalProperties": false, - "anyOf": [ - { - "required": [ - "HttpErrorCodeReturnedEquals" - ] - }, - { - "required": [ - "KeyPrefixEquals" - ] - } - ], - "properties": { - "HttpErrorCodeReturnedEquals": { - "type": "string" - }, - "KeyPrefixEquals": { - "type": "string" - } - }, - "type": "object" - }, - "Rule": { - "additionalProperties": false, - "dependentExcluded": { - "ObjectSizeGreaterThan": [ - "AbortIncompleteMultipartUpload" - ], - "ObjectSizeLessThan": [ - "AbortIncompleteMultipartUpload" - ] - }, - "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload" - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "ExpirationInDays": { - "type": "integer" - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean" - }, - "Id": { - "maxLength": 255, - "type": "string" - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration" - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer" - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "NoncurrentVersionTransitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "type": "array", - "uniqueItems": true - }, - "ObjectSizeGreaterThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "ObjectSizeLessThan": { - "maxLength": 20, - "pattern": "[0-9]+", - "type": "string" - }, - "Prefix": { - "type": "string" - }, - "Status": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" - }, - "TagFilters": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Transition": { - "$ref": "#/definitions/Transition" - }, - "Transitions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Transition" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "S3KeyFilter": { - "additionalProperties": false, - "properties": { - "Rules": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/FilterRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Rules" - ], - "type": "object" - }, - "ServerSideEncryptionByDefault": { - "additionalProperties": false, - "properties": { - "KMSMasterKeyID": { - "type": "string" - }, - "SSEAlgorithm": { - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "type": "string" - } - }, - "required": [ - "SSEAlgorithm" - ], - "type": "object" - }, - "ServerSideEncryptionRule": { - "additionalProperties": false, - "properties": { - "BucketKeyEnabled": { - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault" - } - }, - "type": "object" - }, - "SourceSelectionCriteria": { - "additionalProperties": false, - "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/ReplicaModifications" - }, - "SseKmsEncryptedObjects": { - "$ref": "#/definitions/SseKmsEncryptedObjects" - } - }, - "type": "object" - }, - "SseKmsEncryptedObjects": { - "additionalProperties": false, - "properties": { - "Status": { - "enum": [ - "Disabled", - "Enabled" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "StorageClassAnalysis": { - "additionalProperties": false, - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TargetObjectKeyFormat": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "SimplePrefix": { - "additionalProperties": false, - "type": "object" - } - }, - "required": [ - "SimplePrefix" - ] - }, - { - "additionalProperties": false, - "properties": { - "PartitionedPrefix": { - "$ref": "#/definitions/PartitionedPrefix" - } - }, - "required": [ - "PartitionedPrefix" - ] - } - ], - "type": "object" - }, - "Tiering": { - "additionalProperties": false, - "properties": { - "AccessTier": { - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ], - "type": "string" - }, - "Days": { - "type": "integer" - } - }, - "required": [ - "AccessTier", - "Days" - ], - "type": "object" - }, - "TopicConfiguration": { - "additionalProperties": false, - "properties": { - "Event": { - "type": "string" - }, - "Filter": { - "$ref": "#/definitions/NotificationFilter" - }, - "Topic": { - "type": "string" - } - }, - "required": [ - "Event", - "Topic" - ], - "type": "object" - }, - "Transition": { - "additionalProperties": false, - "properties": { - "StorageClass": { - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "type": "string" - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC" - }, - "TransitionInDays": { - "type": "integer" - } - }, - "required": [ - "StorageClass" - ], - "type": "object" - }, - "VersioningConfiguration": { - "additionalProperties": false, - "properties": { - "Status": { - "default": "Suspended", - "enum": [ - "Enabled", - "Suspended" - ], - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, - "WebsiteConfiguration": { - "additionalProperties": false, - "properties": { - "ErrorDocument": { - "type": "string" - }, - "IndexDocument": { - "type": "string" - }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo" - }, - "RoutingRules": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "iso8601UTC": { - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] - }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" - ] - }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] - }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] - }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] - } - }, - "primaryIdentifier": [ - "/properties/BucketName" - ], - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration" - }, - "AccessControl": { - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "Arn": { - "$ref": "#/definitions/Arn", - "examples": [ - "arn:aws:s3:::mybucket" - ] - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption" - }, - "BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration" - }, - "DomainName": { - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" - }, - "DualStackDomainName": { - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "IntelligentTieringConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "InventoryConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "MetricsConfigurations": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration" - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration" - }, - "ObjectLockEnabled": { - "type": "boolean" - }, - "OwnershipControls": { - "$ref": "#/definitions/OwnershipControls" - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration" - }, - "RegionalDomainName": { - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration" - }, - "WebsiteURL": { - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" - } - }, - "propertyTransform": { - "/properties/NotificationConfiguration/LambdaConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")", - "/properties/NotificationConfiguration/QueueConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")", - "/properties/NotificationConfiguration/TopicConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")" - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::S3::Bucket", - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ] -} 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 f2a335c044..27c128eae6 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -699,7 +699,6 @@ "aws-apigatewayv2-authorizer.json", "aws-apigatewayv2-deployment.json", "aws-apigatewayv2-domainname.json", - "aws-apigatewayv2-integration.json", "aws-apigatewayv2-integrationresponse.json", "aws-apigatewayv2-model.json", "aws-apigatewayv2-route.json", @@ -849,7 +848,6 @@ "aws-ec2-instance.json", "aws-ec2-instanceconnectendpoint.json", "aws-ec2-internetgateway.json", - "aws-ec2-ipam.json", "aws-ec2-ipamallocation.json", "aws-ec2-ipampool.json", "aws-ec2-ipampoolcidr.json", @@ -892,7 +890,6 @@ "aws-ec2-volume.json", "aws-ec2-volumeattachment.json", "aws-ec2-vpc.json", - "aws-ec2-vpccidrblock.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-vpcendpoint.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -977,7 +974,6 @@ "aws-glue-connection.json", "aws-glue-crawler.json", "aws-glue-customentitytype.json", - "aws-glue-database.json", "aws-glue-datacatalogencryptionsettings.json", "aws-glue-dataqualityruleset.json", "aws-glue-devendpoint.json", @@ -1066,7 +1062,6 @@ "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", @@ -1126,7 +1121,6 @@ "aws-rds-dbsecuritygroupingress.json", "aws-rds-dbsubnetgroup.json", "aws-rds-eventsubscription.json", - "aws-rds-globalcluster.json", "aws-rds-integration.json", "aws-rds-optiongroup.json", "aws-redshift-cluster.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json new file mode 100644 index 0000000000..e7b7290e95 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-apigatewayv2-integration.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "RequestTemplates": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "ResponseParameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApiId", + "IntegrationType" + ], + "typeName": "AWS::ApiGatewayV2::Integration" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-ipam.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-ipam.json new file mode 100644 index 0000000000..69ed6aeb61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-ipam.json @@ -0,0 +1,148 @@ +{ + "additionalProperties": false, + "definitions": { + "IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + } + }, + "primaryIdentifier": [ + "/properties/IpamId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "OperatingRegions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpamOperatingRegion" + }, + "type": "array", + "uniqueItems": true + }, + "PrivateDefaultScopeId": { + "type": "string" + }, + "PublicDefaultScopeId": { + "maxLength": 255, + "type": "string" + }, + "ResourceDiscoveryAssociationCount": { + "type": "integer" + }, + "ScopeCount": { + "type": "integer" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Tier": { + "enum": [ + "free", + "advanced" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::IPAM" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpccidrblock.json new file mode 100644 index 0000000000..d12a123311 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-vpccidrblock.json @@ -0,0 +1,103 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateVpcCidrBlock", + "ec2:DescribeVpcs", + "ec2:AllocateIpamPoolCidr" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "required": [ + "VpcId" + ] + }, + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "integer" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json new file mode 100644 index 0000000000..6e618ae270 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-glue-database.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/PrincipalPrivileges" + }, + "type": "array", + "uniqueItems": false + }, + "Description": { + "type": "string" + }, + "FederatedDatabase": { + "$ref": "#/definitions/FederatedDatabase" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "format": "json", + "type": [ + "object", + "string" + ] + }, + "TargetDatabase": { + "$ref": "#/definitions/DatabaseIdentifier" + } + }, + "type": "object" + }, + "FederatedDatabase": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Identifier": { + "type": "string" + } + }, + "type": "object" + }, + "PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Principal": { + "$ref": "#/definitions/DataLakePrincipal" + } + }, + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/DatabaseInput" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DatabaseInput", + "CatalogId" + ], + "typeName": "AWS::Glue::Database" +} 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 new file mode 100644 index 0000000000..d7aa0b43a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-function.json @@ -0,0 +1,552 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName" + ], + "definitions": { + "Code": { + "additionalProperties": false, + "properties": { + "ImageUri": { + "type": "string" + }, + "S3Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[0-9A-Za-z\\.\\-_]*(?