From 2b18a485c830c24fb34453f16ac4bd4fd1055f58 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 11:11:29 -0700 Subject: [PATCH] Update CloudFormation schemas to 2024-05-03 (#3192) Co-authored-by: kddejong <36457093+kddejong@users.noreply.github.com> Co-authored-by: Kevin DeJong --- docs/rules.md | 4 +- ...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_rds_dbinstance/engine_version.json | 6 +- .../schemas/providers/af_south_1/__init__.py | 13 +- .../af_south_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../af_south_1/aws-acmpca-permission.json | 57 - .../af_south_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../af_south_1/aws-dynamodb-table.json | 653 +++++++++++ .../aws-ec2-instance.json | 19 +- .../providers/af_south_1/aws-fms-policy.json | 337 ++++++ .../af_south_1/aws-transfer-agreement.json | 159 --- .../af_south_1/aws-transfer-certificate.json | 174 --- .../af_south_1/aws-transfer-connector.json | 213 ---- .../af_south_1/aws-transfer-profile.json | 125 -- .../af_south_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/ap_east_1/__init__.py | 16 +- .../ap_east_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_east_1/aws-acmpca-permission.json | 57 - .../ap_east_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_east_1/aws-dynamodb-table.json | 653 +++++++++++ .../ap_east_1/aws-ec2-customergateway.json | 119 -- .../aws-ec2-instance.json | 19 +- .../providers/ap_east_1/aws-fms-policy.json | 337 ++++++ .../ap_east_1/aws-rds-dbinstance.json | 669 ----------- .../aws-route53-hostedzone.json | 8 - .../ap_east_1/aws-transfer-agreement.json | 159 --- .../ap_east_1/aws-transfer-certificate.json | 174 --- .../ap_east_1/aws-transfer-connector.json | 213 ---- .../ap_east_1/aws-transfer-profile.json | 125 -- .../ap_east_1/aws-transfer-workflow.json | 347 ------ .../providers/ap_northeast_1/__init__.py | 10 +- .../aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_northeast_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_northeast_1/aws-dynamodb-table.json | 653 +++++++++++ .../ap_northeast_1/aws-iam-managedpolicy.json | 150 --- .../ap_northeast_1/aws-rds-dbinstance.json | 669 ----------- .../providers/ap_northeast_2/__init__.py | 10 +- .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_northeast_2/aws-dynamodb-table.json | 653 +++++++++++ .../ap_northeast_2/aws-ec2-instance.json | 735 ++++++++++++ .../ap_northeast_2/aws-fms-policy.json | 337 ++++++ .../aws-route53-hostedzone.json | 8 - .../aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../aws-transfer-connector.json | 213 ---- .../ap_northeast_2/aws-transfer-profile.json | 125 -- .../ap_northeast_2/aws-transfer-workflow.json | 347 ------ .../providers/ap_northeast_3/__init__.py | 11 +- .../aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_northeast_3/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_northeast_3/aws-dynamodb-table.json | 653 +++++++++++ .../aws-ec2-customergateway.json | 119 -- .../ap_northeast_3/aws-ec2-instance.json | 735 ++++++++++++ ...2-transitgatewayroutetablepropagation.json | 29 - .../ap_northeast_3/aws-rds-dbinstance.json | 669 ----------- .../aws-route53-hostedzone.json | 163 +++ .../schemas/providers/ap_south_1/__init__.py | 11 +- .../ap_south_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 436 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_south_1/aws-acmpca-permission.json | 57 - .../ap_south_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_south_1/aws-dynamodb-table.json | 653 +++++++++++ .../ap_south_1/aws-ec2-customergateway.json | 119 -- .../ap_south_1/aws-ec2-instance.json | 735 ++++++++++++ .../aws-location-apikey.json | 2 +- .../ap_south_1/aws-rds-dbinstance.json | 669 ----------- .../ap_south_1/aws-route53-hostedzone.json | 163 +++ .../schemas/providers/ap_south_2/__init__.py | 17 +- .../ap_south_2/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_south_2/aws-acmpca-permission.json | 57 - .../ap_south_2/aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_south_2/aws-dynamodb-table.json | 653 +++++++++++ .../ap_south_2/aws-ec2-customergateway.json | 119 -- .../ap_south_2/aws-ec2-instance.json | 735 ++++++++++++ .../providers/ap_south_2/aws-fms-policy.json | 337 ++++++ .../ap_south_2/aws-rds-dbinstance.json | 669 ----------- .../ap_south_2/aws-transfer-agreement.json | 159 --- .../ap_south_2/aws-transfer-certificate.json | 174 --- .../ap_south_2/aws-transfer-connector.json | 213 ---- .../ap_south_2/aws-transfer-profile.json | 125 -- .../ap_south_2/aws-transfer-workflow.json | 347 ------ .../providers/ap_southeast_1/__init__.py | 8 +- .../aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_southeast_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_southeast_1/aws-dynamodb-table.json | 653 +++++++++++ .../aws-ec2-customergateway.json | 119 -- .../aws-ssm-resourcedatasync.json | 186 +++ .../providers/ap_southeast_2/__init__.py | 9 +- .../aws-apigateway-restapi.json | 213 ++++ .../aws-directoryservice-simplead.json | 155 +++ .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_southeast_2/aws-dynamodb-table.json | 653 +++++++++++ .../aws-ec2-customergateway.json | 119 -- .../ap_southeast_2/aws-ec2-instance.json | 735 ++++++++++++ .../aws-quicksight-topic.json | 6 - .../ap_southeast_2/aws-rds-dbinstance.json | 669 ----------- .../aws-route53-hostedzone.json | 163 +++ .../providers/ap_southeast_3/__init__.py | 13 +- .../aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_southeast_3/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_southeast_3/aws-dynamodb-table.json | 653 +++++++++++ .../ap_southeast_3/aws-ec2-instance.json | 735 ++++++++++++ .../ap_southeast_3/aws-fms-policy.json | 337 ++++++ .../aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../aws-transfer-connector.json | 213 ---- .../ap_southeast_3/aws-transfer-profile.json | 125 -- .../ap_southeast_3/aws-transfer-workflow.json | 347 ------ .../providers/ap_southeast_4/__init__.py | 17 +- .../aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ap_southeast_4/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ap_southeast_4/aws-dynamodb-table.json | 653 +++++++++++ .../aws-ec2-customergateway.json | 119 -- .../ap_southeast_4/aws-ec2-instance.json | 735 ++++++++++++ .../ap_southeast_4/aws-fms-policy.json | 337 ++++++ .../ap_southeast_4/aws-rds-dbinstance.json | 669 ----------- .../aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../aws-transfer-connector.json | 213 ---- .../ap_southeast_4/aws-transfer-profile.json | 125 -- .../ap_southeast_4/aws-transfer-workflow.json | 347 ------ .../providers/ca_central_1/__init__.py | 13 +- .../ca_central_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ca_central_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../ca_central_1/aws-dynamodb-table.json | 653 +++++++++++ .../ca_central_1/aws-ec2-customergateway.json | 119 -- .../ca_central_1/aws-ec2-instance.json | 735 ++++++++++++ ...2-transitgatewayroutetablepropagation.json | 29 - .../aws-location-apikey.json | 2 +- .../ca_central_1/aws-quicksight-topic.json | 1015 +++++++++++++++++ .../ca_central_1/aws-rds-dbinstance.json | 669 ----------- .../ca_central_1/aws-route53-hostedzone.json | 163 +++ .../schemas/providers/ca_west_1/__init__.py | 10 +- .../ca_west_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../ca_west_1/aws-acmpca-permission.json | 57 - .../ca_west_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../ca_west_1/aws-dynamodb-table.json | 653 +++++++++++ .../ca_west_1/aws-ec2-customergateway.json | 119 -- .../aws-stepfunctions-statemachinealias.json | 173 --- .../schemas/providers/cn_north_1/__init__.py | 7 +- .../cn_north_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../cn_north_1/aws-dynamodb-table.json | 653 +++++++++++ .../aws-elasticloadbalancingv2-listener.json | 345 ------ ...s-elasticloadbalancingv2-listenerrule.json | 429 ------- ...s-elasticloadbalancingv2-loadbalancer.json | 190 --- ...aws-route53resolver-firewallrulegroup.json | 243 ++++ .../providers/cn_northwest_1/__init__.py | 9 +- .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../cn_northwest_1/aws-dynamodb-table.json | 653 +++++++++++ .../cn_northwest_1/aws-ec2-instance.json | 735 ++++++++++++ .../cn_northwest_1/aws-fms-policy.json | 337 ++++++ .../aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../aws-transfer-connector.json | 213 ---- .../cn_northwest_1/aws-transfer-profile.json | 125 -- .../cn_northwest_1/aws-transfer-workflow.json | 347 ------ .../providers/eu_central_1/__init__.py | 10 +- .../eu_central_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 436 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_central_1/aws-acmpca-permission.json | 57 - .../eu_central_1/aws-location-apikey.json | 226 ++++ .../eu_central_1/aws-qldb-stream.json | 146 +++ ...aws-route53resolver-firewallrulegroup.json | 243 ++++ .../providers/eu_central_2/__init__.py | 21 +- .../eu_central_2/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_central_2/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_central_2/aws-dynamodb-table.json | 653 +++++++++++ .../eu_central_2/aws-ec2-instance.json | 735 ++++++++++++ .../aws-elasticache-serverlesscache.json | 243 ---- .../eu_central_2/aws-fms-policy.json | 337 ++++++ .../eu_central_2/aws-redshift-cluster.json | 432 +++++++ .../aws-redshift-clustersubnetgroup.json | 162 +++ .../aws-redshift-endpointaccess.json | 226 ++++ .../aws-redshift-endpointauthorization.json | 135 +++ .../aws-redshift-scheduledaction.json | 210 ++++ .../eu_central_2/aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../eu_central_2/aws-transfer-connector.json | 213 ---- .../eu_central_2/aws-transfer-profile.json | 125 -- .../eu_central_2/aws-transfer-workflow.json | 347 ------ .../schemas/providers/eu_north_1/__init__.py | 17 +- .../eu_north_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 436 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_north_1/aws-acmpca-permission.json | 57 - .../eu_north_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_north_1/aws-dynamodb-table.json | 653 +++++++++++ .../eu_north_1/aws-ec2-customergateway.json | 119 -- .../eu_north_1/aws-ec2-instance.json | 735 ++++++++++++ .../providers/eu_north_1/aws-fms-policy.json | 337 ++++++ .../eu_north_1/aws-location-apikey.json | 226 ++++ .../eu_north_1/aws-rds-dbinstance.json | 669 ----------- .../eu_north_1/aws-route53-hostedzone.json | 163 +++ .../eu_north_1/aws-transfer-agreement.json | 159 --- .../eu_north_1/aws-transfer-certificate.json | 174 --- .../eu_north_1/aws-transfer-connector.json | 213 ---- .../eu_north_1/aws-transfer-profile.json | 125 -- .../eu_north_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/eu_south_1/__init__.py | 13 +- .../eu_south_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_south_1/aws-acmpca-permission.json | 57 - .../eu_south_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_south_1/aws-dynamodb-table.json | 653 +++++++++++ .../eu_south_1/aws-ec2-instance.json | 735 ++++++++++++ .../providers/eu_south_1/aws-fms-policy.json | 337 ++++++ .../eu_south_1/aws-transfer-agreement.json | 159 --- .../eu_south_1/aws-transfer-certificate.json | 174 --- .../eu_south_1/aws-transfer-connector.json | 213 ---- .../eu_south_1/aws-transfer-profile.json | 125 -- .../eu_south_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/eu_south_2/__init__.py | 17 +- .../eu_south_2/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_south_2/aws-acmpca-permission.json | 57 - .../eu_south_2/aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_south_2/aws-dynamodb-table.json | 653 +++++++++++ .../eu_south_2/aws-ec2-customergateway.json | 119 -- .../eu_south_2/aws-ec2-instance.json | 735 ++++++++++++ .../providers/eu_south_2/aws-fms-policy.json | 337 ++++++ .../eu_south_2/aws-rds-dbinstance.json | 669 ----------- .../eu_south_2/aws-transfer-agreement.json | 159 --- .../eu_south_2/aws-transfer-certificate.json | 174 --- .../eu_south_2/aws-transfer-connector.json | 213 ---- .../eu_south_2/aws-transfer-profile.json | 125 -- .../eu_south_2/aws-transfer-workflow.json | 347 ------ .../schemas/providers/eu_west_1/__init__.py | 10 +- .../eu_west_1/aws-apigateway-method.json | 283 +++++ .../eu_west_1/aws-apigateway-restapi.json | 213 ++++ .../aws-directoryservice-simplead.json | 155 +++ .../eu_west_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_west_1/aws-dynamodb-table.json | 653 +++++++++++ .../eu_west_1/aws-ec2-customergateway.json | 119 -- .../providers/eu_west_1/aws-ec2-instance.json | 735 ++++++++++++ .../aws-sagemaker-appimageconfig.json | 238 ---- .../eu_west_1/aws-sagemaker-domain.json | 739 ------------ .../eu_west_1/aws-sagemaker-userprofile.json | 524 --------- .../schemas/providers/eu_west_2/__init__.py | 13 +- .../eu_west_2/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_west_2/aws-acmpca-permission.json | 57 - .../eu_west_2/aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_west_2/aws-dynamodb-table.json | 653 +++++++++++ .../eu_west_2/aws-ec2-customergateway.json | 119 -- .../providers/eu_west_2/aws-ec2-instance.json | 735 ++++++++++++ ...2-transitgatewayroutetablepropagation.json | 29 - .../eu_west_2/aws-location-apikey.json | 226 ++++ .../eu_west_2/aws-quicksight-topic.json | 1015 +++++++++++++++++ .../eu_west_2/aws-rds-dbinstance.json | 669 ----------- .../eu_west_2/aws-route53-hostedzone.json | 163 +++ .../schemas/providers/eu_west_3/__init__.py | 16 +- .../eu_west_3/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../eu_west_3/aws-acmpca-permission.json | 57 - .../eu_west_3/aws-dynamodb-globaltable.json | 697 +++++++++++ .../eu_west_3/aws-dynamodb-table.json | 653 +++++++++++ .../eu_west_3/aws-ec2-customergateway.json | 119 -- .../providers/eu_west_3/aws-ec2-instance.json | 735 ++++++++++++ .../providers/eu_west_3/aws-fms-policy.json | 337 ++++++ .../eu_west_3/aws-rds-dbinstance.json | 669 ----------- .../eu_west_3/aws-route53-hostedzone.json | 163 +++ .../eu_west_3/aws-transfer-agreement.json | 159 --- .../eu_west_3/aws-transfer-certificate.json | 174 --- .../eu_west_3/aws-transfer-connector.json | 213 ---- .../eu_west_3/aws-transfer-profile.json | 125 -- .../eu_west_3/aws-transfer-workflow.json | 347 ------ .../providers/il_central_1/__init__.py | 15 +- .../il_central_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../il_central_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../il_central_1/aws-dynamodb-table.json | 653 +++++++++++ .../il_central_1/aws-ec2-instance.json | 735 ++++++++++++ .../aws-elasticache-serverlesscache.json | 243 ---- .../il_central_1/aws-fms-policy.json | 337 ++++++ .../il_central_1/aws-rds-dbinstance.json | 669 ----------- .../il_central_1/aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../il_central_1/aws-transfer-connector.json | 213 ---- .../il_central_1/aws-transfer-profile.json | 125 -- .../il_central_1/aws-transfer-workflow.json | 347 ------ .../providers/me_central_1/__init__.py | 18 +- .../me_central_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../me_central_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../me_central_1/aws-dynamodb-table.json | 653 +++++++++++ .../me_central_1/aws-ec2-customergateway.json | 119 -- .../me_central_1/aws-ec2-instance.json | 735 ++++++++++++ ...2-transitgatewayroutetablepropagation.json | 29 - .../me_central_1/aws-fms-policy.json | 337 ++++++ .../me_central_1/aws-rds-dbinstance.json | 669 ----------- .../me_central_1/aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../me_central_1/aws-transfer-connector.json | 213 ---- .../me_central_1/aws-transfer-profile.json | 125 -- .../me_central_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/me_south_1/__init__.py | 15 +- .../me_south_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../me_south_1/aws-acmpca-permission.json | 57 - .../me_south_1/aws-backup-backupplan.json | 222 ---- .../me_south_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../me_south_1/aws-dynamodb-table.json | 653 +++++++++++ .../me_south_1/aws-ec2-instance.json | 735 ++++++++++++ .../providers/me_south_1/aws-fms-policy.json | 337 ++++++ .../me_south_1/aws-route53-hostedzone.json | 163 +++ .../me_south_1/aws-transfer-agreement.json | 159 --- .../me_south_1/aws-transfer-certificate.json | 174 --- .../me_south_1/aws-transfer-connector.json | 213 ---- .../me_south_1/aws-transfer-profile.json | 125 -- .../me_south_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/sa_east_1/__init__.py | 11 +- .../sa_east_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../sa_east_1/aws-acmpca-permission.json | 57 - .../sa_east_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../sa_east_1/aws-dynamodb-table.json | 653 +++++++++++ .../sa_east_1/aws-ec2-customergateway.json | 119 -- .../providers/sa_east_1/aws-ec2-instance.json | 735 ++++++++++++ .../sa_east_1/aws-location-apikey.json | 226 ++++ .../sa_east_1/aws-rds-dbinstance.json | 669 ----------- .../sa_east_1/aws-route53-hostedzone.json | 163 +++ .../us_east_1/aws-dynamodb-globaltable.json | 32 + .../us_east_1/aws-dynamodb-table.json | 20 + .../providers/us_east_1/aws-ec2-instance.json | 19 +- .../providers/us_east_1/aws-fms-policy.json | 137 ++- .../us_east_1/aws-location-apikey.json | 2 +- .../us_east_1/aws-quicksight-topic.json | 6 + .../us_east_1/aws-route53-hostedzone.json | 8 + .../schemas/providers/us_east_2/__init__.py | 11 +- .../us_east_2/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 436 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../us_east_2/aws-acmpca-permission.json | 57 - .../us_east_2/aws-dynamodb-globaltable.json | 697 +++++++++++ .../us_east_2/aws-dynamodb-table.json | 653 +++++++++++ .../us_east_2/aws-ec2-customergateway.json | 119 -- .../providers/us_east_2/aws-ec2-instance.json | 735 ++++++++++++ ...2-transitgatewayroutetablepropagation.json | 29 - .../us_east_2/aws-quicksight-topic.json | 1015 +++++++++++++++++ .../us_east_2/aws-route53-hostedzone.json | 163 +++ .../providers/us_gov_east_1/__init__.py | 17 +- .../us_gov_east_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../us_gov_east_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../us_gov_east_1/aws-dynamodb-table.json | 653 +++++++++++ .../us_gov_east_1/aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../us_gov_east_1/aws-transfer-connector.json | 213 ---- .../us_gov_east_1/aws-transfer-profile.json | 125 -- .../us_gov_east_1/aws-transfer-workflow.json | 347 ------ .../providers/us_gov_west_1/__init__.py | 18 +- .../us_gov_west_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 429 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../us_gov_west_1/aws-acmpca-permission.json | 57 - .../aws-dynamodb-globaltable.json | 697 +++++++++++ .../us_gov_west_1/aws-dynamodb-table.json | 653 +++++++++++ .../us_gov_west_1/aws-ec2-vpccidrblock.json | 56 - .../us_gov_west_1/aws-transfer-agreement.json | 159 --- .../aws-transfer-certificate.json | 174 --- .../us_gov_west_1/aws-transfer-connector.json | 213 ---- .../us_gov_west_1/aws-transfer-profile.json | 125 -- .../us_gov_west_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/us_west_1/__init__.py | 17 +- .../us_west_1/aws-acmpca-certificate.json | 433 ------- .../aws-acmpca-certificateauthority.json | 436 ------- ...acmpca-certificateauthorityactivation.json | 64 -- .../us_west_1/aws-acmpca-permission.json | 57 - .../aws-apigateway-gatewayresponse.json | 115 ++ .../us_west_1/aws-dynamodb-globaltable.json | 697 +++++++++++ .../us_west_1/aws-dynamodb-table.json | 653 +++++++++++ .../us_west_1/aws-ec2-customergateway.json | 119 -- .../providers/us_west_1/aws-ec2-instance.json | 735 ++++++++++++ ...2-transitgatewayroutetablepropagation.json | 29 - .../us_west_1/aws-rds-dbinstance.json | 669 ----------- .../us_west_1/aws-route53-hostedzone.json | 163 +++ .../us_west_1/aws-transfer-agreement.json | 159 --- .../us_west_1/aws-transfer-certificate.json | 174 --- .../us_west_1/aws-transfer-connector.json | 213 ---- .../us_west_1/aws-transfer-profile.json | 125 -- .../us_west_1/aws-transfer-workflow.json | 347 ------ .../schemas/providers/us_west_2/__init__.py | 3 +- .../us_west_2/aws-rds-dbinstance.json | 669 ----------- ...aws-route53resolver-firewallrulegroup.json | 243 ++++ 459 files changed, 71369 insertions(+), 61396 deletions(-) delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-table.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => af_south_1}/aws-ec2-instance.json (98%) create mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-customergateway.json rename src/cfnlint/data/schemas/providers/{cn_north_1 => ap_east_1}/aws-ec2-instance.json (98%) create mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_east_1}/aws-route53-hostedzone.json (93%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iam-managedpolicy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_northeast_2}/aws-route53-hostedzone.json (93%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-transitgatewayroutetablepropagation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-instance.json rename src/cfnlint/data/schemas/providers/{ap_northeast_1 => ap_south_1}/aws-location-apikey.json (95%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_1/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ssm-resourcedatasync.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigateway-restapi.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-directoryservice-simplead.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-instance.json rename src/cfnlint/data/schemas/providers/{eu_central_1 => ap_southeast_2}/aws-quicksight-topic.json (99%) delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-transitgatewayroutetablepropagation.json rename src/cfnlint/data/schemas/providers/{us_west_2 => ca_central_1}/aws-location-apikey.json (95%) create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-quicksight-topic.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/ca_central_1/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json delete mode 100644 src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachinealias.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listener.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listenerrule.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json create mode 100644 src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-firewallrulegroup.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-permission.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-qldb-stream.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_1/aws-route53resolver-firewallrulegroup.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-serverlesscache.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-cluster.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clustersubnetgroup.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointaccess.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointauthorization.json create mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-scheduledaction.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-workflow.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-method.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-restapi.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-directoryservice-simplead.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-appimageconfig.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-domain.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-userprofile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-transitgatewayroutetablepropagation.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-quicksight-topic.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_2/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-elasticache-serverlesscache.json create mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroutetablepropagation.json create mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-fms-policy.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-permission.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-backup-backupplan.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-table.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-fms-policy.json create mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-instance.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json delete mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/sa_east_1/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-transitgatewayroutetablepropagation.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-quicksight-topic.json create mode 100644 src/cfnlint/data/schemas/providers/us_east_2/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpccidrblock.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthority.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthorityactivation.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-permission.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-apigateway-gatewayresponse.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-globaltable.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-table.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-customergateway.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-instance.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-transitgatewayroutetablepropagation.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-route53-hostedzone.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-agreement.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-certificate.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-connector.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-profile.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-workflow.json delete mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-rds-dbinstance.json create mode 100644 src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-firewallrulegroup.json diff --git a/docs/rules.md b/docs/rules.md index 1c506a9f91..0b9fccfa85 100644 --- a/docs/rules.md +++ b/docs/rules.md @@ -123,8 +123,8 @@ The following **193** rules are applied by this linter: | [E3030](../src/cfnlint/rules/resources/properties/Enum.py) | Check if properties have a valid value | Check if properties have a valid value in case of an enumator | | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/cfn-schema-specification.md#enum) | `resources`,`property`,`allowed value` | | [E3031](../src/cfnlint/rules/resources/properties/Pattern.py) | Check if property values adhere to a specific pattern | Check if properties have a valid value in case of a pattern (Regular Expression) | exceptions:list:[] | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/cfn-schema-specification.md#pattern) | `resources`,`property`,`allowed pattern`,`regex` | | [E3032](../src/cfnlint/rules/resources/properties/ArrayLength.py) | Check if a array has between min and max number of values specified | Check array for the number of items in the list to validate they are between the minimum and maximum | | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/cfn-schema-specification.md#arraylength) | `resources`,`property`,`array`,`length` | -| [E3033](../src/cfnlint/rules/resources/properties/StringLength.py) | Check if a string has between min and max number of values specified | Check strings for its length between the minimum and maximum | | [Source](https://github.com/awslabs/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern) | `resources`,`property`,`string`,`size` | -| [E3034](../src/cfnlint/rules/resources/properties/NumberRange.py) | Check if a number is between min and max | Check numbers (integers and floats) for its value being between the minimum and maximum | | [Source](https://github.com/awslabs/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#allowedpattern) | `resources`,`property`,`number`,`size` | +| [E3033](../src/cfnlint/rules/resources/properties/StringLength.py) | Check if a string has between min and max number of values specified | Check strings for its length between the minimum and maximum | | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/v1/docs/cfn-schema-specification.md#length) | `resources`,`property`,`string`,`size` | +| [E3034](../src/cfnlint/rules/resources/properties/NumberRange.py) | Check if a number is between min and max | Check numbers (integers and floats) for its value being between the minimum and maximum | | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/cfn-schema-specification.md#number-range) | `resources`,`property`,`number`,`size` | | [E3035](../src/cfnlint/rules/resources/DeletionPolicy.py) | Check DeletionPolicy values for Resources | Check that the DeletionPolicy values are valid | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) | `resources`,`deletionpolicy` | | [E3036](../src/cfnlint/rules/resources/UpdateReplacePolicy.py) | Check UpdateReplacePolicy values for Resources | Check that the UpdateReplacePolicy values are valid | | [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html) | `resources`,`updatereplacepolicy` | | [E3037](../src/cfnlint/rules/resources/properties/UniqueItems.py) | Check if a list has duplicate values | Certain lists don't support duplicate items. Check when duplicates are provided but not supported. | | [Source](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/cfn-schema-specification.md#uniqueitems) | `resources`,`property`,`list` | diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index 00a36dbe2f..433fd9fed1 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"c32d4b1ef8a73a5388e8d6bc9f755308\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a28d105c151831cc5180280626141bb0\"", "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 e1cef3631b..e4a2e62fb9 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"386d922e12cf6debf66c35c487764f54\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"2f0660e2009f6b00d8766a9928c7c884\"", "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 1a4c9ba263..cebbc1bfd2 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"50bc1a1f61f84cfd73a78d43817e4822\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e987e7b1b725a806ec977175723b7758\"", "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 7f461ca8e2..5ab1ea2916 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"993c37ed381fd89b7889e680431536d5\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"16faf7f7ee2bf9b671f16907ed752da5\"", "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 2f4a132092..8e7cd9eeea 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"58c9d7977d0dfebc777f4663503542e1\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"d1530015ddd8de75f98f6429d2348b19\"", "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 5d963a106d..091e5cec92 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"5b0cce5d78ccfdf656a3dd29fdc862f7\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"50991ed57eec9b35aca76b739bdba942\"", "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 da0b39eef9..e58b0af3d2 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"2b736c8da4066d39b4c67fa6465b32ad\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"335b476b253cf8845cd2d82319517af1\"", "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 36cca267f4..fa1519447d 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"df23a67ab179f20c58ac69605a3b4486\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"0df9abdb662a218e7acc5b80cb694d80\"", "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 426e09e94a..e2a7904e8d 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"5ca01d368711bc28bdfc0249c28b09f2\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4dbc3b1d393d5657c54b33b7624e465e\"", "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 cd8c8d2b7d..151c332e07 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"c1c36236eec7f1780e777b3624603cd2\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2dc564796fc950f2a70169718484f644\"", "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 4b4587b6df..1a31067379 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"2dd843cec600c982d6066d6b8a089e35\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0400dcb7cf03bd5300c643f276317490\"", "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 69d25e2fd8..a8339d6c7b 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"5ccd9e8983aae406c50163acb68c13a1\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e6ca57fbf262f4058bd8e4e39fd59c7d\"", "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 8e958dc97a..a415aceb97 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"952d9eb01bd89471a46b9b99c8874255\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"85c7f8f3fab2e4e4801376c02c1ba68f\"", "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 3f173077ff..a46629b16b 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"51b183a71d1185e30cae64fa94742c4b\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bd0f462167a4bba019eef954a321369e\"", "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 b4eb74ef58..057ac08f2e 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"ab0b3d28681d0b7e714d384541e5a6a0\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cc2ccd1ad83ecf92920eb785d76f7029\"", "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 199ce7ed90..215934dd3b 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"a0321224570afc37015970d136e233aa\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"952006f25873a9b8a7a484af3fb7bda1\"", "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 20875b0325..47197cfe38 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"f797a54966598e88efa50ff130872fd5\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"02e56a71d2d9c250df2dd024cae1e6b8\"", "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 6b65080287..c37e1962ba 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"eb46266184e26996f92669966327411a\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"309e8b2e3425d77ef67010a6c43da57b\"", "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 5482ed9f42..5434494dab 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"44990d55400f369c876eb7af639d0297\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2df68147099660c918ad0e83dc356419\"", "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 dfeadb7fb4..2c080fd116 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"b4ed9223d6f0de3aab5a2d35120643d2\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5e634bc88689a8ab8bce204d0b57660d\"", "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 c581d4ad54..b31039a01f 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"1590c2f7d14445685580b657b16e2fea\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5edcf3854aa5b8f11b6bfee1a4d2746d\"", "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 16be5835ae..b2967d5fce 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"f3396c296b128d7db523e9a09c7bd9b0\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a7a9cb80f014475db63716061156885c\"", "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 0953c4e7b5..a4c0d9aa3c 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"fa7918441cac098120513ee001f00579\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5e41e68d96eef89d4e61b8ccea19d555\"", "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 89114bad3b..40a7d0d6de 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"034a434cfe3c02cc3f93c9036db036c2\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7302690aedc69d50aa211855338d0a3f\"", "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 8d05beb254..adfccdae60 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"746c654b9e36232eb61d19ca5c8ab0f5\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"48d98cdbdc1754d95d1cee26e5f9fc9d\"", "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 1caf92ea83..7107fdfed8 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"f5749e97d010962ae697c43e06d2d315\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"71bb5ad5d3909700aa5473e59c4d4831\"", "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 e98cec0caf..06d203778f 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"dca0faf915a0aa627d3f830a6d4692ae\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"6289722dad60968a8b68ff63af49dbbd\"", "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 20ddf86c08..8a20f949a3 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"dcc248f1f0197d5c835364ade93c7e2a\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7b5e4274f2a1b38696dd040579a28410\"", "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 8b3f49e148..acd0d833fe 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"bb28d2d2a9e9b25245ff42ed79bbc2df\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f4835306b0a327ec8aad04c51f0e247f\"", "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 d411eaa49a..5bc3313791 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"b834fd3d791e4d0b9f718cb56ed80c06\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0e95510b53ab754970ddca008c67c2d4\"", "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 977b0c6692..2af98eb7bb 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"c4ec4aa9a8a57a41e14341e18314922c\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2db61544901899a81d8f39d2a550f41e\"", "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 2e7fc43574..d8f6d6a547 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"7ef0b90f19006583050c2c2ef17f5ce1\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3a0ba04189ee6bc71afa430d7b9086cf\"", "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 d231168ea1..a30016ba8e 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"ae0beafdf70cc2ba6b255a03eef24b55\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c51c693c3184880c5f7a1d1c651adc45\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json b/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json index d6571890ff..b67f3e0995 100644 --- a/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json +++ b/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/engine_version.json @@ -279,7 +279,8 @@ "11.5.9.0.sb00000000.r1", "11.5.9.0.sb00039210.r1", "11.5.9.0.sb00039340.r1", - "11.5.9.0.sb00040222.r1" + "11.5.9.0.sb00040222.r1", + "11.5.9.0.sb00040226.r1" ] } } @@ -310,7 +311,8 @@ "11.5.9.0.sb00000000.r1", "11.5.9.0.sb00039210.r1", "11.5.9.0.sb00039340.r1", - "11.5.9.0.sb00040222.r1" + "11.5.9.0.sb00040222.r1", + "11.5.9.0.sb00040226.r1" ] } } 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 282d350209..aaf69dc7d0 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -792,7 +792,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -940,12 +939,14 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", "aws-fsx-datarepositoryassociation.json", @@ -968,11 +969,13 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-connect-contactflowmodule.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", "aws-lex-resourcepolicy.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-ses-emailidentity.json", "aws-mediatailor-channel.json", @@ -986,6 +989,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1109,6 +1113,7 @@ "aws-customerprofiles-calculatedattributedefinition.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-lex-botversion.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1153,7 +1158,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-fis-experimenttemplate.json", @@ -1178,6 +1182,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-eventschemas-schema.json", @@ -1197,6 +1202,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1240,7 +1246,6 @@ "aws-customerprofiles-objecttype.json", "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1346,6 +1351,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1449,7 +1455,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-instance.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-instance.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-instance.json index b64c2d65df..6c49e5c0b3 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-instance.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-instance.json @@ -310,18 +310,6 @@ ], "type": "object" }, - "State": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, "Tag": { "additionalProperties": false, "properties": { @@ -680,10 +668,6 @@ "type": "array", "uniqueItems": false }, - "State": { - "$ref": "#/definitions/State", - "type": "object" - }, "SubnetId": { "type": "string" }, @@ -724,8 +708,7 @@ "/properties/PublicDnsName", "/properties/PublicIp", "/properties/PrivateDnsName", - "/properties/VpcId", - "/properties/State" + "/properties/VpcId" ], "requiredXor": [ "ImageId", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} 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 34d918e69f..27f0be4396 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -787,7 +787,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", @@ -942,6 +941,7 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", @@ -949,6 +949,7 @@ "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", @@ -967,9 +968,11 @@ "aws-apigateway-usageplankey.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-neptune-dbcluster.json", "aws-cloudwatch-anomalydetector.json", @@ -982,6 +985,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -1066,12 +1070,13 @@ "aws-servicediscovery-httpnamespace.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", "aws-apigateway-documentationversion.json", "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-opsworks-stack.json", @@ -1106,6 +1111,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1150,7 +1156,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-fis-experimenttemplate.json", @@ -1180,6 +1185,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-eventschemas-schema.json", @@ -1198,6 +1204,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1236,7 +1243,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1345,6 +1351,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1440,7 +1447,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-instance.json similarity index 98% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-instance.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-instance.json index b64c2d65df..6c49e5c0b3 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ec2-instance.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-instance.json @@ -310,18 +310,6 @@ ], "type": "object" }, - "State": { - "additionalProperties": false, - "properties": { - "Code": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, "Tag": { "additionalProperties": false, "properties": { @@ -680,10 +668,6 @@ "type": "array", "uniqueItems": false }, - "State": { - "$ref": "#/definitions/State", - "type": "object" - }, "SubnetId": { "type": "string" }, @@ -724,8 +708,7 @@ "/properties/PublicDnsName", "/properties/PublicIp", "/properties/PrivateDnsName", - "/properties/VpcId", - "/properties/State" + "/properties/VpcId" ], "requiredXor": [ "ImageId", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-route53-hostedzone.json similarity index 93% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53-hostedzone.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-route53-hostedzone.json index 7f24a39d31..4690c89e62 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-route53-hostedzone.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-route53-hostedzone.json @@ -36,10 +36,6 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::Logs::LogGroup" - }, "type": "string" } }, @@ -52,10 +48,6 @@ "additionalProperties": false, "properties": { "VPCId": { - "relationshipRef": { - "propertyPath": "/properties/VpcId", - "typeName": "AWS::EC2::VPC" - }, "type": "string" }, "VPCRegion": { diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} 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 2dfe884e33..798fd716fc 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -1196,7 +1196,6 @@ "aws-opensearchserverless-vpcendpoint.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1470,6 +1469,7 @@ "aws-gamelift-gameservergroup.json", "aws-robomaker-robotapplication.json", "aws-qldb-stream.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", @@ -1533,6 +1533,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1667,6 +1668,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", + "aws-route53-hostedzone.json", "aws-apigatewayv2-vpclink.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-securitylake-subscriber.json", @@ -1677,6 +1679,7 @@ "aws-stepfunctions-activity.json", "aws-dax-cluster.json", "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ses-receiptruleset.json", @@ -1844,9 +1847,11 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-greengrass-functiondefinition.json", + "aws-iam-managedpolicy.json", "aws-amplifyuibuilder-theme.json", "aws-eventschemas-schema.json", "aws-iotwireless-destination.json", @@ -1934,7 +1939,6 @@ "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", "aws-datapipeline-pipeline.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-evidently-project.json", @@ -2113,6 +2117,7 @@ "aws-appstream-fleet.json", "aws-ec2-carriergateway.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -2239,6 +2244,7 @@ "aws-resourceexplorer2-view.json", "aws-ivs-stage.json", "aws-certificatemanager-account.json", + "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iam-managedpolicy.json deleted file mode 100644 index d04c706f8e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iam-managedpolicy.json +++ /dev/null @@ -1,150 +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": { - "cfnLint": [ - "AWS::IAM::ManagedPolicy/Properties/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_northeast_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py index 822ae9974b..191b2297a4 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1087,7 +1087,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1318,6 +1317,7 @@ "aws-iotevents-alarmmodel.json", "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-ivs-storageconfiguration.json", "aws-sagemaker-inferencecomponent.json", @@ -1359,12 +1359,14 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", "aws-wafregional-sizeconstraintset.json", "aws-connect-contactflowmodule.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", "aws-gamelift-location.json", "aws-lex-resourcepolicy.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-s3-multiregionaccesspointpolicy.json", "aws-iotsitewise-asset.json", @@ -1512,7 +1514,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", @@ -1564,6 +1565,7 @@ "aws-workspaces-connectionalias.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-wisdom-knowledgebase.json", "aws-pinpoint-inapptemplate.json", "aws-iot-authorizer.json", @@ -1630,7 +1632,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1696,6 +1697,7 @@ "aws-organizations-resourcepolicy.json", "aws-lightsail-loadbalancer.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1752,7 +1754,6 @@ "aws-customerprofiles-objecttype.json", "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-ivs-streamkey.json", @@ -2043,7 +2044,6 @@ "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", "aws-ec2-clientvpnauthorizationrule.json", - "aws-fms-policy.json", "aws-budgets-budget.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53-hostedzone.json similarity index 93% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-hostedzone.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53-hostedzone.json index 7f24a39d31..4690c89e62 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53-hostedzone.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-route53-hostedzone.json @@ -36,10 +36,6 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::Logs::LogGroup" - }, "type": "string" } }, @@ -52,10 +48,6 @@ "additionalProperties": false, "properties": { "VPCId": { - "relationshipRef": { - "propertyPath": "/properties/VpcId", - "typeName": "AWS::EC2::VPC" - }, "type": "string" }, "VPCRegion": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} 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 4560bc5139..bbbbe5fce4 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -762,7 +762,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -918,6 +917,7 @@ "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", @@ -951,6 +951,7 @@ "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1030,11 +1031,12 @@ "aws-servicediscovery-httpnamespace.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", "aws-inspectorv2-cisscanconfiguration.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-opsworks-stack.json", @@ -1112,7 +1114,6 @@ "aws-ssm-association.json", "aws-rds-integration.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -1136,6 +1137,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1189,7 +1191,6 @@ "aws-appsync-domainnameapiassociation.json", "aws-cloudformation-waitcondition.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", @@ -1299,6 +1300,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1413,6 +1415,7 @@ "aws-ec2-clientvpnendpoint.json", "aws-rds-dbcluster.json", "aws-redshift-endpointaccess.json", + "aws-ec2-transitgatewayroutetablepropagation.json", "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", "aws-ssm-resourcepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-transitgatewayroutetablepropagation.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-transitgatewayroutetablepropagation.json deleted file mode 100644 index 1b2c5205a2..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-transitgatewayroutetablepropagation.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayAttachmentId": { - "type": "string" - }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} 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 3fb18add7f..8b1e83d72d 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -1085,7 +1085,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1331,6 +1330,7 @@ "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", "aws-gamelift-gameservergroup.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", @@ -1389,6 +1389,7 @@ "aws-workspacesthinclient-environment.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1508,7 +1509,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", @@ -1516,6 +1516,8 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-pinpoint-voicechannel.json", @@ -1625,7 +1627,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1663,6 +1664,7 @@ "aws-logs-deliverysource.json", "aws-pinpointemail-configurationset.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-greengrass-functiondefinition.json", @@ -1744,7 +1746,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-ivs-streamkey.json", @@ -1901,6 +1902,7 @@ "aws-ec2-ipam.json", "aws-appstream-fleet.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -2015,7 +2017,6 @@ "aws-resourceexplorer2-view.json", "aws-ivs-stage.json", "aws-certificatemanager-account.json", - "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index ecdb17a904..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json similarity index 95% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-apikey.json rename to src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json index deb35907f8..3cfbf7cd5b 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-apikey.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-location-apikey.json @@ -34,7 +34,7 @@ "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):::((provider[\\/][*-._\\w]+))$)", + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$", "type": "string" }, "maxItems": 5, diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} 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 c1fdf75dd3..918b403d26 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -400,6 +400,7 @@ "AWS::Chatbot::SlackChannelConfiguration", "AWS::Glue::Classifier", "AWS::FMS::ResourceSet", + "AWS::RUM::AppMonitor", "AWS::EC2::VPCEndpointServicePermissions", "AWS::AppConfig::ExtensionAssociation", "AWS::IoT::ThingPrincipalAttachment", @@ -595,7 +596,6 @@ "aws-route53resolver-resolverconfig.json", "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", @@ -706,11 +706,13 @@ "aws-lambda-permission.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", @@ -723,6 +725,8 @@ "aws-certificatemanager-certificate.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-mediatailor-channel.json", "aws-cloudwatch-anomalydetector.json", @@ -732,6 +736,7 @@ "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -798,6 +803,8 @@ "aws-servicecatalogappregistry-resourceassociation.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ec2-subnet.json", @@ -824,6 +831,7 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-ssm-document.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-networkfirewall-loggingconfiguration.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-organizations-organization.json", @@ -856,7 +864,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -877,6 +884,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-ec2-subnetcidrblock.json", "aws-identitystore-groupmembership.json", "aws-ec2-gatewayroutetableassociation.json", @@ -889,6 +897,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-globalaccelerator-listener.json", "aws-redshift-clustersecuritygroup.json", @@ -912,13 +921,13 @@ "aws-pcaconnectorad-directoryregistration.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", "aws-chatbot-slackchannelconfiguration.json", "aws-glue-classifier.json", "aws-fms-resourceset.json", + "aws-rum-appmonitor.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-appconfig-extensionassociation.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -981,6 +990,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1055,7 +1065,6 @@ "aws-opsworks-elasticloadbalancerattachment.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-ec2-trafficmirrorfilter.json", "aws-sqs-queue.json", "aws-datasync-locationsmb.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} 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 11d576d05d..830f600c4a 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1172,7 +1172,6 @@ "aws-opensearchserverless-vpcendpoint.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1434,6 +1433,7 @@ "aws-gamelift-gameservergroup.json", "aws-robomaker-robotapplication.json", "aws-qldb-stream.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", @@ -1497,6 +1497,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1636,6 +1637,7 @@ "aws-stepfunctions-activity.json", "aws-omics-rungroup.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", @@ -1801,6 +1803,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-greengrass-functiondefinition.json", @@ -1855,7 +1858,6 @@ "aws-cloudfront-continuousdeploymentpolicy.json", "aws-logs-loganomalydetector.json", "aws-xray-resourcepolicy.json", - "aws-ssm-resourcedatasync.json", "aws-vpclattice-accesslogsubscription.json", "aws-devopsguru-loganomalydetectionintegration.json", "aws-networkmanager-sitetositevpnattachment.json", @@ -1891,7 +1893,6 @@ "aws-customerprofiles-objecttype.json", "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-evidently-project.json", @@ -2064,6 +2065,7 @@ "aws-ec2-ipam.json", "aws-appstream-fleet.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ssm-resourcedatasync.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ssm-resourcedatasync.json new file mode 100644 index 0000000000..10af749a93 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ssm-resourcedatasync.json @@ -0,0 +1,186 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KMSKeyArn", + "/properties/SyncFormat", + "/properties/BucketPrefix", + "/properties/SyncName", + "/properties/BucketRegion", + "/properties/BucketName", + "/properties/S3Destination", + "/properties/SyncType" + ], + "definitions": { + "AwsOrganizationsSource": { + "additionalProperties": false, + "properties": { + "OrganizationSourceType": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "OrganizationalUnits": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "OrganizationSourceType" + ], + "type": "object" + }, + "S3Destination": { + "additionalProperties": false, + "properties": { + "BucketName": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "BucketPrefix": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "BucketRegion": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyArn": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SyncFormat": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BucketName", + "BucketRegion", + "SyncFormat" + ], + "type": "object" + }, + "SyncSource": { + "additionalProperties": false, + "properties": { + "AwsOrganizationsSource": { + "$ref": "#/definitions/AwsOrganizationsSource" + }, + "IncludeFutureRegions": { + "type": "boolean" + }, + "SourceRegions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceType": { + "maxLength": 64, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "SourceType", + "SourceRegions" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ssm:CreateResourceDataSync", + "ssm:ListResourceDataSync" + ] + }, + "delete": { + "permissions": [ + "ssm:ListResourceDataSync", + "ssm:DeleteResourceDataSync" + ] + }, + "list": { + "permissions": [ + "ssm:ListResourceDataSync" + ] + }, + "read": { + "permissions": [ + "ssm:ListResourceDataSync" + ] + }, + "update": { + "permissions": [ + "ssm:ListResourceDataSync", + "ssm:UpdateResourceDataSync" + ] + } + }, + "primaryIdentifier": [ + "/properties/SyncName" + ], + "properties": { + "BucketName": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "BucketPrefix": { + "maxLength": 64, + "minLength": 0, + "type": "string" + }, + "BucketRegion": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "KMSKeyArn": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "S3Destination": { + "$ref": "#/definitions/S3Destination" + }, + "SyncFormat": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "SyncName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "SyncSource": { + "$ref": "#/definitions/SyncSource" + }, + "SyncType": { + "maxLength": 64, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SyncName" + ], + "required": [ + "SyncName" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::SSM::ResourceDataSync" +} 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 8659b8bd38..4dcc82fe4d 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1189,7 +1189,6 @@ "aws-opensearchserverless-vpcendpoint.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1473,7 +1472,6 @@ "aws-cloudfront-keygroup.json", "aws-batch-computeenvironment.json", "aws-opsworks-layer.json", - "aws-directoryservice-simplead.json", "aws-ec2-enclavecertificateiamroleassociation.json", "aws-emr-cluster.json", "aws-datasync-locations3.json", @@ -1533,7 +1531,6 @@ "aws-appintegrations-eventintegration.json", "aws-cloudtrail-trail.json", "aws-wafregional-sqlinjectionmatchset.json", - "aws-apigateway-restapi.json", "aws-networkmanager-device.json", "aws-ec2-eipassociation.json", "aws-globalaccelerator-endpointgroup.json", @@ -1656,7 +1653,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-apigatewayv2-vpclink.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-securitylake-subscriber.json", @@ -1666,6 +1662,8 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ses-receiptruleset.json", @@ -1787,7 +1785,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1923,7 +1920,6 @@ "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", "aws-datapipeline-pipeline.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-evidently-project.json", "aws-detective-organizationadmin.json", @@ -2272,7 +2268,6 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-oam-link.json", "aws-wafv2-loggingconfiguration.json", - "aws-quicksight-topic.json", "aws-deadline-farm.json", "aws-ec2-keypair.json", "aws-pinpointemail-dedicatedippool.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigateway-restapi.json new file mode 100644 index 0000000000..c8bb89a943 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-apigateway-restapi.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "cfnLint": [ + "AWS::ApiGateway::RestApi/Properties" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::EC2::VPCEndpoint" + }, + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:GET", + "apigateway:POST", + "apigateway:PUT", + "apigateway:PATCH", + "apigateway:UpdateRestApiPolicy", + "s3:GetObject", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE", + "apigateway:PATCH", + "apigateway:PUT", + "apigateway:UpdateRestApiPolicy", + "s3:GetObject", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/RestApiId" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": [ + "object", + "string" + ] + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": [ + "object", + "string" + ] + }, + "Policy": { + "type": [ + "object", + "string" + ] + }, + "RestApiId": { + "type": "string" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/RestApiId", + "/properties/RootResourceId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ApiGateway::RestApi", + "writeOnlyProperties": [ + "/properties/Body", + "/properties/BodyS3Location", + "/properties/CloneFrom", + "/properties/FailOnWarnings", + "/properties/Mode", + "/properties/Parameters" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..ed5e95d666 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-directoryservice-simplead.json @@ -0,0 +1,155 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "$comment": "Contains VPC information", + "additionalProperties": false, + "properties": { + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html", + "handlers": { + "create": { + "permissions": [ + "ds:CreateDirectory", + "ds:CreateAlias", + "ds:EnableSso", + "ds:DescribeDirectories", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:CreateSecurityGroup", + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:CreateTags", + "ec2:RevokeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "ds:DeleteDirectory", + "ds:DescribeDirectories", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteSecurityGroup", + "ec2:DeleteNetworkInterface", + "ec2:RevokeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress", + "ec2:DeleteTags" + ], + "timeoutInMinutes": 100 + }, + "list": { + "permissions": [ + "ds:DescribeDirectories" + ] + }, + "read": { + "permissions": [ + "ds:DescribeDirectories" + ] + }, + "update": { + "permissions": [ + "ds:EnableSso", + "ds:DisableSso", + "ds:DescribeDirectories" + ] + } + }, + "primaryIdentifier": [ + "/properties/DirectoryId" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DirectoryId": { + "type": "string" + }, + "DnsIpAddresses": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Alias", + "/properties/DnsIpAddresses", + "/properties/DirectoryId" + ], + "required": [ + "VpcSettings", + "Size", + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::DirectoryService::SimpleAD", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-topic.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-quicksight-topic.json similarity index 99% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-topic.json rename to src/cfnlint/data/schemas/providers/ap_southeast_2/aws-quicksight-topic.json index 161b93f9ac..66c003ee7f 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-quicksight-topic.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-quicksight-topic.json @@ -526,9 +526,6 @@ "DefaultFormatting": { "$ref": "#/definitions/DefaultFormatting" }, - "DisableIndexing": { - "type": "boolean" - }, "Expression": { "maxLength": 4096, "minLength": 1, @@ -651,9 +648,6 @@ "DefaultFormatting": { "$ref": "#/definitions/DefaultFormatting" }, - "DisableIndexing": { - "type": "boolean" - }, "IsIncludedInTopic": { "default": false, "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} 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 902ba239bf..8f18daaacc 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -614,7 +614,6 @@ "aws-route53resolver-resolverconfig.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -726,12 +725,14 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-sagemaker-inferencecomponent.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", @@ -745,6 +746,8 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-ses-emailidentity.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-alarm.json", @@ -752,6 +755,7 @@ "aws-ses-vdmattributes.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -847,6 +851,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", "aws-organizations-organization.json", @@ -882,7 +887,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-ec2-verifiedaccessendpoint.json", "aws-iotwireless-multicastgroup.json", @@ -906,6 +910,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-eventschemas-schema.json", @@ -922,6 +927,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-sagemaker-workteam.json", "aws-globalaccelerator-listener.json", @@ -952,7 +958,6 @@ "aws-pcaconnectorad-directoryregistration.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-chatbot-slackchannelconfiguration.json", @@ -1032,6 +1037,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1110,7 +1116,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", "aws-sagemaker-image.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} 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 7f032a37ee..090ae4fc2b 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -384,6 +384,7 @@ "AWS::Glue::Table", "AWS::Chatbot::SlackChannelConfiguration", "AWS::Glue::Classifier", + "AWS::RUM::AppMonitor", "AWS::EC2::VPCEndpointServicePermissions", "AWS::AppConfig::ExtensionAssociation", "AWS::IoT::ThingPrincipalAttachment", @@ -569,7 +570,6 @@ "aws-route53resolver-resolverconfig.json", "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-datasync-locationobjectstorage.json", @@ -674,11 +674,13 @@ "aws-lambda-permission.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", @@ -689,6 +691,8 @@ "aws-route53resolver-resolverrule.json", "aws-certificatemanager-certificate.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-mediatailor-channel.json", "aws-cloudwatch-anomalydetector.json", @@ -697,6 +701,7 @@ "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -759,6 +764,8 @@ "aws-servicecatalogappregistry-resourceassociation.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ec2-subnet.json", @@ -784,6 +791,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-networkfirewall-loggingconfiguration.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-organizations-organization.json", @@ -813,7 +821,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -834,6 +841,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-identitystore-groupmembership.json", @@ -846,6 +854,7 @@ "aws-cloudwatch-dashboard.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-globalaccelerator-listener.json", "aws-redshift-clustersecuritygroup.json", @@ -869,12 +878,12 @@ "aws-pcaconnectorad-directoryregistration.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", "aws-chatbot-slackchannelconfiguration.json", "aws-glue-classifier.json", + "aws-rum-appmonitor.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-appconfig-extensionassociation.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -936,6 +945,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1003,7 +1013,6 @@ "aws-opsworks-elasticloadbalancerattachment.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-sqs-queue.json", "aws-datasync-locationsmb.json", "aws-ec2-vpcendpointconnectionnotification.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} 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 1c38680abe..cece0697b9 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1056,7 +1056,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1290,6 +1289,7 @@ "aws-apigateway-usageplan.json", "aws-gamelift-gameservergroup.json", "aws-qldb-stream.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", @@ -1349,6 +1349,7 @@ "aws-workspacesthinclient-environment.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1468,7 +1469,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-apigatewayv2-vpclink.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", @@ -1476,6 +1476,8 @@ "aws-apigateway-documentationversion.json", "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ses-receiptruleset.json", @@ -1585,7 +1587,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1622,6 +1623,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1704,7 +1706,6 @@ "aws-customerprofiles-objecttype.json", "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", @@ -1858,6 +1859,7 @@ "aws-appstream-fleet.json", "aws-ec2-carriergateway.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1966,7 +1968,6 @@ "aws-ec2-verifiedaccesstrustprovider.json", "aws-resourceexplorer2-view.json", "aws-certificatemanager-account.json", - "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", @@ -2007,7 +2008,6 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-oam-link.json", "aws-wafv2-loggingconfiguration.json", - "aws-quicksight-topic.json", "aws-ec2-keypair.json", "aws-guardduty-member.json", "aws-detective-memberinvitation.json", @@ -2017,6 +2017,7 @@ "aws-rds-dbcluster.json", "aws-iot-softwarepackageversion.json", "aws-redshift-endpointaccess.json", + "aws-ec2-transitgatewayroutetablepropagation.json", "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", "aws-vpclattice-authpolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-transitgatewayroutetablepropagation.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-transitgatewayroutetablepropagation.json deleted file mode 100644 index 1b2c5205a2..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-transitgatewayroutetablepropagation.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayAttachmentId": { - "type": "string" - }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json similarity index 95% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-location-apikey.json rename to src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json index deb35907f8..3cfbf7cd5b 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-location-apikey.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-location-apikey.json @@ -34,7 +34,7 @@ "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):::((provider[\\/][*-._\\w]+))$)", + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$", "type": "string" }, "maxItems": 5, diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-quicksight-topic.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-quicksight-topic.json new file mode 100644 index 0000000000..66c003ee7f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-quicksight-topic.json @@ -0,0 +1,1015 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/TopicId" + ], + "definitions": { + "AggregationFunctionParameters": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "AuthorSpecifiedAggregation": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX", + "MEDIAN", + "SUM", + "AVERAGE", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "PERCENTILE" + ], + "type": "string" + }, + "CategoryFilterFunction": { + "enum": [ + "EXACT", + "CONTAINS" + ], + "type": "string" + }, + "CategoryFilterType": { + "enum": [ + "CUSTOM_FILTER", + "CUSTOM_FILTER_LIST", + "FILTER_LIST" + ], + "type": "string" + }, + "CellValueSynonym": { + "additionalProperties": false, + "properties": { + "CellValue": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Synonyms": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CollectiveConstant": { + "additionalProperties": false, + "properties": { + "ValueList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ColumnDataRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnOrderingType": { + "enum": [ + "GREATER_IS_BETTER", + "LESSER_IS_BETTER", + "SPECIFIED" + ], + "type": "string" + }, + "ComparativeOrder": { + "additionalProperties": false, + "properties": { + "SpecifedOrder": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TreatUndefinedSpecifiedValues": { + "$ref": "#/definitions/UndefinedSpecifiedValueType" + }, + "UseOrdering": { + "$ref": "#/definitions/ColumnOrderingType" + } + }, + "type": "object" + }, + "ConstantType": { + "enum": [ + "SINGULAR", + "RANGE", + "COLLECTIVE" + ], + "type": "string" + }, + "DataAggregation": { + "additionalProperties": false, + "properties": { + "DatasetRowDateGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + }, + "DefaultDateColumnName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DatasetMetadata": { + "additionalProperties": false, + "properties": { + "CalculatedFields": { + "items": { + "$ref": "#/definitions/TopicCalculatedField" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/TopicColumn" + }, + "type": "array" + }, + "DataAggregation": { + "$ref": "#/definitions/DataAggregation" + }, + "DatasetArn": { + "type": "string" + }, + "DatasetDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DatasetName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/TopicFilter" + }, + "type": "array" + }, + "NamedEntities": { + "items": { + "$ref": "#/definitions/TopicNamedEntity" + }, + "type": "array" + } + }, + "required": [ + "DatasetArn" + ], + "type": "object" + }, + "DefaultAggregation": { + "enum": [ + "SUM", + "MAX", + "MIN", + "COUNT", + "DISTINCT_COUNT", + "AVERAGE", + "MEDIAN", + "STDEV", + "STDEVP", + "VAR", + "VARP" + ], + "type": "string" + }, + "DefaultFormatting": { + "additionalProperties": false, + "properties": { + "DisplayFormat": { + "$ref": "#/definitions/DisplayFormat" + }, + "DisplayFormatOptions": { + "$ref": "#/definitions/DisplayFormatOptions" + } + }, + "type": "object" + }, + "DisplayFormat": { + "enum": [ + "AUTO", + "PERCENT", + "CURRENCY", + "NUMBER", + "DATE", + "STRING" + ], + "type": "string" + }, + "DisplayFormatOptions": { + "additionalProperties": false, + "properties": { + "BlankCellFormat": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CurrencySymbol": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DateFormat": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DecimalSeparator": { + "$ref": "#/definitions/TopicNumericSeparatorSymbol" + }, + "FractionDigits": { + "default": 0, + "type": "number" + }, + "GroupingSeparator": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "NegativeFormat": { + "$ref": "#/definitions/NegativeFormat" + }, + "Prefix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Suffix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "UnitScaler": { + "$ref": "#/definitions/NumberScale" + }, + "UseBlankCellFormat": { + "default": false, + "type": "boolean" + }, + "UseGrouping": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "FilterClass": { + "enum": [ + "ENFORCED_VALUE_FILTER", + "CONDITIONAL_VALUE_FILTER", + "NAMED_VALUE_FILTER" + ], + "type": "string" + }, + "NamedEntityAggType": { + "enum": [ + "SUM", + "MIN", + "MAX", + "COUNT", + "AVERAGE", + "DISTINCT_COUNT", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "PERCENTILE", + "MEDIAN", + "CUSTOM" + ], + "type": "string" + }, + "NamedEntityDefinition": { + "additionalProperties": false, + "properties": { + "FieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Metric": { + "$ref": "#/definitions/NamedEntityDefinitionMetric" + }, + "PropertyName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "PropertyRole": { + "$ref": "#/definitions/PropertyRole" + }, + "PropertyUsage": { + "$ref": "#/definitions/PropertyUsage" + } + }, + "type": "object" + }, + "NamedEntityDefinitionMetric": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedEntityAggType" + }, + "AggregationFunctionParameters": { + "$ref": "#/definitions/AggregationFunctionParameters" + } + }, + "type": "object" + }, + "NamedFilterAggType": { + "enum": [ + "NO_AGGREGATION", + "SUM", + "AVERAGE", + "COUNT", + "DISTINCT_COUNT", + "MAX", + "MEDIAN", + "MIN", + "STDEV", + "STDEVP", + "VAR", + "VARP" + ], + "type": "string" + }, + "NamedFilterType": { + "enum": [ + "CATEGORY_FILTER", + "NUMERIC_EQUALITY_FILTER", + "NUMERIC_RANGE_FILTER", + "DATE_RANGE_FILTER", + "RELATIVE_DATE_FILTER" + ], + "type": "string" + }, + "NegativeFormat": { + "additionalProperties": false, + "properties": { + "Prefix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Suffix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "PropertyRole": { + "enum": [ + "PRIMARY", + "ID" + ], + "type": "string" + }, + "PropertyUsage": { + "enum": [ + "INHERIT", + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "RangeConstant": { + "additionalProperties": false, + "properties": { + "Maximum": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Minimum": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "SemanticEntityType": { + "additionalProperties": false, + "properties": { + "SubTypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeParameters": { + "$ref": "#/definitions/TypeParameters" + } + }, + "type": "object" + }, + "SemanticType": { + "additionalProperties": false, + "properties": { + "FalseyCellValue": { + "type": "string" + }, + "FalseyCellValueSynonyms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubTypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TruthyCellValue": { + "type": "string" + }, + "TruthyCellValueSynonyms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeParameters": { + "$ref": "#/definitions/TypeParameters" + } + }, + "type": "object" + }, + "TopicCalculatedField": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/DefaultAggregation" + }, + "AllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "CalculatedFieldDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CalculatedFieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CalculatedFieldSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "CellValueSynonyms": { + "items": { + "$ref": "#/definitions/CellValueSynonym" + }, + "type": "array" + }, + "ColumnDataRole": { + "$ref": "#/definitions/ColumnDataRole" + }, + "ComparativeOrder": { + "$ref": "#/definitions/ComparativeOrder" + }, + "DefaultFormatting": { + "$ref": "#/definitions/DefaultFormatting" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IsIncludedInTopic": { + "default": false, + "type": "boolean" + }, + "NeverAggregateInFilter": { + "default": false, + "type": "boolean" + }, + "NonAdditive": { + "default": false, + "type": "boolean" + }, + "NotAllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "SemanticType": { + "$ref": "#/definitions/SemanticType" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "required": [ + "CalculatedFieldName", + "Expression" + ], + "type": "object" + }, + "TopicCategoryFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilterFunction": { + "$ref": "#/definitions/CategoryFilterFunction" + }, + "CategoryFilterType": { + "$ref": "#/definitions/CategoryFilterType" + }, + "Constant": { + "$ref": "#/definitions/TopicCategoryFilterConstant" + }, + "Inverse": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicCategoryFilterConstant": { + "additionalProperties": false, + "properties": { + "CollectiveConstant": { + "$ref": "#/definitions/CollectiveConstant" + }, + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "SingularConstant": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TopicColumn": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/DefaultAggregation" + }, + "AllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "CellValueSynonyms": { + "items": { + "$ref": "#/definitions/CellValueSynonym" + }, + "type": "array" + }, + "ColumnDataRole": { + "$ref": "#/definitions/ColumnDataRole" + }, + "ColumnDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnFriendlyName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "ComparativeOrder": { + "$ref": "#/definitions/ComparativeOrder" + }, + "DefaultFormatting": { + "$ref": "#/definitions/DefaultFormatting" + }, + "IsIncludedInTopic": { + "default": false, + "type": "boolean" + }, + "NeverAggregateInFilter": { + "default": false, + "type": "boolean" + }, + "NonAdditive": { + "default": false, + "type": "boolean" + }, + "NotAllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "SemanticType": { + "$ref": "#/definitions/SemanticType" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "required": [ + "ColumnName" + ], + "type": "object" + }, + "TopicDateRangeFilter": { + "additionalProperties": false, + "properties": { + "Constant": { + "$ref": "#/definitions/TopicRangeFilterConstant" + }, + "Inclusive": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicDetails": { + "additionalProperties": false, + "properties": { + "DataSets": { + "items": { + "$ref": "#/definitions/DatasetMetadata" + }, + "type": "array" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "UserExperienceVersion": { + "$ref": "#/definitions/TopicUserExperienceVersion" + } + }, + "type": "object" + }, + "TopicFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/TopicCategoryFilter" + }, + "DateRangeFilter": { + "$ref": "#/definitions/TopicDateRangeFilter" + }, + "FilterClass": { + "$ref": "#/definitions/FilterClass" + }, + "FilterDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FilterName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FilterSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "FilterType": { + "$ref": "#/definitions/NamedFilterType" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/TopicNumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/TopicNumericRangeFilter" + }, + "OperandFieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "RelativeDateFilter": { + "$ref": "#/definitions/TopicRelativeDateFilter" + } + }, + "required": [ + "FilterName", + "OperandFieldName" + ], + "type": "object" + }, + "TopicNamedEntity": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "$ref": "#/definitions/NamedEntityDefinition" + }, + "type": "array" + }, + "EntityDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EntityName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EntitySynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "SemanticEntityType": { + "$ref": "#/definitions/SemanticEntityType" + } + }, + "required": [ + "EntityName" + ], + "type": "object" + }, + "TopicNumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedFilterAggType" + }, + "Constant": { + "$ref": "#/definitions/TopicSingularFilterConstant" + } + }, + "type": "object" + }, + "TopicNumericRangeFilter": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedFilterAggType" + }, + "Constant": { + "$ref": "#/definitions/TopicRangeFilterConstant" + }, + "Inclusive": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicNumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT" + ], + "type": "string" + }, + "TopicRangeFilterConstant": { + "additionalProperties": false, + "properties": { + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "RangeConstant": { + "$ref": "#/definitions/RangeConstant" + } + }, + "type": "object" + }, + "TopicRelativeDateFilter": { + "additionalProperties": false, + "properties": { + "Constant": { + "$ref": "#/definitions/TopicSingularFilterConstant" + }, + "RelativeDateFilterFunction": { + "$ref": "#/definitions/TopicRelativeDateFilterFunction" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "type": "object" + }, + "TopicRelativeDateFilterFunction": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NEXT", + "NOW" + ], + "type": "string" + }, + "TopicSingularFilterConstant": { + "additionalProperties": false, + "properties": { + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "SingularConstant": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TopicTimeGranularity": { + "enum": [ + "SECOND", + "MINUTE", + "HOUR", + "DAY", + "WEEK", + "MONTH", + "QUARTER", + "YEAR" + ], + "type": "string" + }, + "TopicUserExperienceVersion": { + "enum": [ + "LEGACY", + "NEW_READER_EXPERIENCE" + ], + "type": "string" + }, + "TypeParameters": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "UndefinedSpecifiedValueType": { + "enum": [ + "LEAST", + "MOST" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "quicksight:CreateTopic", + "quicksight:PassDataSet", + "quicksight:DescribeTopicRefresh" + ] + }, + "delete": { + "permissions": [ + "quicksight:DeleteTopic" + ] + }, + "list": { + "permissions": [ + "quicksight:ListTopics" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeTopic" + ] + }, + "update": { + "permissions": [ + "quicksight:UpdateTopic", + "quicksight:PassDataSet", + "quicksight:DescribeTopicRefresh" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/TopicId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DataSets": { + "items": { + "$ref": "#/definitions/DatasetMetadata" + }, + "type": "array" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "TopicId": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9-_.\\\\+]*$", + "type": "string" + }, + "UserExperienceVersion": { + "$ref": "#/definitions/TopicUserExperienceVersion" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::QuickSight::Topic" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} 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 1b60050d6b..36303e60ac 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -372,6 +372,7 @@ "AWS::ACMPCA::Permission", "AWS::SecretsManager::RotationSchedule", "AWS::CodeDeploy::DeploymentGroup", + "AWS::FSx::FileSystem", "AWS::Events::Rule", "AWS::Glue::MLTransform", "AWS::IAM::OIDCProvider", @@ -466,7 +467,6 @@ "aws-route53resolver-resolverconfig.json", "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", - "aws-dynamodb-table.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", "aws-datasync-locationobjectstorage.json", @@ -541,7 +541,9 @@ "aws-lambda-permission.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-stepfunctions-statemachinealias.json", "aws-batch-schedulingpolicy.json", + "aws-acmpca-certificateauthority.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", "aws-batch-computeenvironment.json", @@ -556,6 +558,7 @@ "aws-backup-backupplan.json", "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -609,6 +612,7 @@ "aws-servicecatalogappregistry-resourceassociation.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", + "aws-ec2-customergateway.json", "aws-elasticache-cachecluster.json", "aws-ec2-subnet.json", "aws-guardduty-ipset.json", @@ -671,6 +675,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-iam-managedpolicy.json", "aws-ec2-gatewayroutetableassociation.json", "aws-ec2-natgateway.json", @@ -690,7 +695,6 @@ "aws-iam-samlprovider.json", "aws-secretsmanager-secret.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", "aws-glue-classifier.json", @@ -744,8 +748,10 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", + "aws-fsx-filesystem.json", "aws-events-rule.json", "aws-glue-mltransform.json", "aws-iam-oidcprovider.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachinealias.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachinealias.json deleted file mode 100644 index 29eb0abecf..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-statemachinealias.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "DeploymentPreference": { - "additionalProperties": false, - "properties": { - "Alarms": { - "insertionOrder": false, - "items": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "Interval": { - "maximum": 2100, - "minimum": 1, - "type": "integer" - }, - "Percentage": { - "maximum": 99, - "minimum": 1, - "type": "integer" - }, - "StateMachineVersionArn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Type": { - "enum": [ - "LINEAR", - "ALL_AT_ONCE", - "CANARY" - ], - "type": "string" - } - }, - "required": [ - "StateMachineVersionArn", - "Type" - ], - "type": "object" - }, - "RoutingConfiguration": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/RoutingConfigurationVersion" - }, - "maxItems": 2, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "RoutingConfigurationVersion": { - "additionalProperties": false, - "properties": { - "StateMachineVersionArn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Weight": { - "maximum": 100, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "StateMachineVersionArn", - "Weight" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachineAlias", - "states:DescribeStateMachineAlias" - ] - }, - "delete": { - "permissions": [ - "states:DescribeStateMachineAlias", - "states:DeleteStateMachineAlias" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RoutingConfiguration": { - "$ref": "resource-schema.json#/properties/RoutingConfiguration" - } - }, - "required": [ - "RoutingConfiguration" - ] - }, - "permissions": [ - "states:ListStateMachineAliases" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachineAlias" - ] - }, - "update": { - "permissions": [ - "cloudwatch:DescribeAlarms", - "states:UpdateStateMachineAlias", - "states:DescribeStateMachineAlias" - ] - } - }, - "oneOf": [ - { - "required": [ - "RoutingConfiguration" - ] - }, - { - "required": [ - "DeploymentPreference" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "DeploymentPreference": { - "$ref": "#/definitions/DeploymentPreference" - }, - "Description": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoutingConfiguration": { - "$ref": "#/definitions/RoutingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::StepFunctions::StateMachineAlias", - "writeOnlyProperties": [ - "/properties/DeploymentPreference" - ] -} 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 febcc4f5a8..e6c7f5bd6a 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -672,7 +672,6 @@ "aws-route53resolver-resolverconfig.json", "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", @@ -857,6 +856,7 @@ "aws-msk-batchscramsecret.json", "aws-ec2-capacityreservationfleet.json", "aws-glue-registry.json", + "aws-elasticloadbalancingv2-loadbalancer.json", "aws-s3objectlambda-accesspoint.json", "aws-iot-fleetmetric.json", "aws-ec2-internetgateway.json", @@ -952,7 +952,6 @@ "aws-organizations-organization.json", "aws-s3-storagelens.json", "aws-docdb-eventsubscription.json", - "aws-route53resolver-firewallrulegroup.json", "aws-autoscaling-scalingpolicy.json", "aws-glue-workflow.json", "aws-events-connection.json", @@ -983,6 +982,7 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", + "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -1050,7 +1050,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1202,6 +1201,7 @@ "aws-logs-resourcepolicy.json", "aws-wafv2-webaclassociation.json", "aws-autoscaling-lifecyclehook.json", + "aws-elasticloadbalancingv2-listenerrule.json", "aws-transfer-user.json", "aws-rolesanywhere-profile.json", "aws-rds-globalcluster.json", @@ -1257,6 +1257,7 @@ "aws-sns-topic.json", "aws-route53resolver-firewalldomainlist.json", "aws-appsync-apikey.json", + "aws-elasticloadbalancingv2-listener.json", "aws-ec2-networkinterfacepermission.json", "aws-datasync-locationefs.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listener.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listener.json deleted file mode 100644 index 7b0172eaf3..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listener.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/LoadBalancerArn" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/FixedResponseConfig" - }, - "ForwardConfig": { - "$ref": "#/definitions/ForwardConfig" - }, - "Order": { - "type": "integer" - }, - "RedirectConfig": { - "$ref": "#/definitions/RedirectConfig" - }, - "TargetGroupArn": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AuthenticateCognitoConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationRequestExtraParams": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "string" - }, - "UserPoolArn": { - "type": "string" - }, - "UserPoolClientId": { - "type": "string" - }, - "UserPoolDomain": { - "type": "string" - } - }, - "required": [ - "UserPoolClientId", - "UserPoolDomain", - "UserPoolArn" - ], - "type": "object" - }, - "AuthenticateOidcConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationRequestExtraParams": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "AuthorizationEndpoint": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "ClientSecret": { - "type": "string" - }, - "Issuer": { - "type": "string" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "string" - }, - "TokenEndpoint": { - "type": "string" - }, - "UseExistingClientSecret": { - "type": "boolean" - }, - "UserInfoEndpoint": { - "type": "string" - } - }, - "required": [ - "TokenEndpoint", - "Issuer", - "UserInfoEndpoint", - "ClientId", - "AuthorizationEndpoint" - ], - "type": "object" - }, - "Certificate": { - "additionalProperties": false, - "properties": { - "CertificateArn": { - "type": "string" - } - }, - "type": "object" - }, - "FixedResponseConfig": { - "additionalProperties": false, - "properties": { - "ContentType": { - "type": "string" - }, - "MessageBody": { - "type": "string" - }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "ForwardConfig": { - "additionalProperties": false, - "properties": { - "TargetGroupStickinessConfig": { - "$ref": "#/definitions/TargetGroupStickinessConfig" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupTuple" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RedirectConfig": { - "additionalProperties": false, - "properties": { - "Host": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "Port": { - "type": "string" - }, - "Protocol": { - "type": "string" - }, - "Query": { - "type": "string" - }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "TargetGroupStickinessConfig": { - "additionalProperties": false, - "properties": { - "DurationSeconds": { - "type": "integer" - }, - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "TargetGroupTuple": { - "additionalProperties": false, - "properties": { - "TargetGroupArn": { - "type": "string" - }, - "Weight": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "elasticloadbalancing:CreateListener", - "elasticloadbalancing:DescribeListeners", - "cognito-idp:DescribeUserPoolClient" - ] - }, - "delete": { - "permissions": [ - "elasticloadbalancing:DeleteListener", - "elasticloadbalancing:DescribeListeners" - ] - }, - "list": { - "handlerSchema": { - "oneOf": [ - { - "required": [ - "LoadBalancerArn" - ] - }, - { - "required": [ - "ListenerArns" - ] - } - ], - "properties": { - "ListenerArns": { - "items": { - "$ref": "resource-schema.json#/properties/ListenerArn" - }, - "type": "array", - "uniqueItems": false - }, - "LoadBalancerArn": { - "$ref": "resource-schema.json#/properties/LoadBalancerArn" - } - } - }, - "permissions": [ - "elasticloadbalancing:DescribeListeners" - ] - }, - "read": { - "permissions": [ - "elasticloadbalancing:DescribeListeners" - ] - }, - "update": { - "permissions": [ - "elasticloadbalancing:ModifyListener", - "elasticloadbalancing:DescribeListeners", - "cognito-idp:DescribeUserPoolClient" - ] - } - }, - "primaryIdentifier": [ - "/properties/ListenerArn" - ], - "properties": { - "AlpnPolicy": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Certificates": { - "items": { - "$ref": "#/definitions/Certificate" - }, - "type": "array", - "uniqueItems": true - }, - "DefaultActions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": true - }, - "ListenerArn": { - "type": "string" - }, - "LoadBalancerArn": { - "type": "string" - }, - "Port": { - "type": "integer" - }, - "Protocol": { - "type": "string" - }, - "SslPolicy": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ListenerArn" - ], - "required": [ - "LoadBalancerArn", - "DefaultActions" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::ElasticLoadBalancingV2::Listener", - "writeOnlyProperties": [ - "/properties/DefaultActions/*/AuthenticateOidcConfig/ClientSecret" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listenerrule.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listenerrule.json deleted file mode 100644 index c871a01473..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-listenerrule.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ListenerArn" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "properties": { - "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AuthenticateCognitoConfig" - }, - "AuthenticateOidcConfig": { - "$ref": "#/definitions/AuthenticateOidcConfig" - }, - "FixedResponseConfig": { - "$ref": "#/definitions/FixedResponseConfig" - }, - "ForwardConfig": { - "$ref": "#/definitions/ForwardConfig" - }, - "Order": { - "type": "integer" - }, - "RedirectConfig": { - "$ref": "#/definitions/RedirectConfig" - }, - "TargetGroupArn": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AuthenticateCognitoConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "integer" - }, - "UserPoolArn": { - "type": "string" - }, - "UserPoolClientId": { - "type": "string" - }, - "UserPoolDomain": { - "type": "string" - } - }, - "required": [ - "UserPoolClientId", - "UserPoolDomain", - "UserPoolArn" - ], - "type": "object" - }, - "AuthenticateOidcConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationRequestExtraParams": { - "additionalProperties": false, - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "AuthorizationEndpoint": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "ClientSecret": { - "type": "string" - }, - "Issuer": { - "type": "string" - }, - "OnUnauthenticatedRequest": { - "type": "string" - }, - "Scope": { - "type": "string" - }, - "SessionCookieName": { - "type": "string" - }, - "SessionTimeout": { - "type": "integer" - }, - "TokenEndpoint": { - "type": "string" - }, - "UseExistingClientSecret": { - "type": "boolean" - }, - "UserInfoEndpoint": { - "type": "string" - } - }, - "required": [ - "TokenEndpoint", - "Issuer", - "UserInfoEndpoint", - "ClientId", - "AuthorizationEndpoint" - ], - "type": "object" - }, - "FixedResponseConfig": { - "additionalProperties": false, - "properties": { - "ContentType": { - "type": "string" - }, - "MessageBody": { - "type": "string" - }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "ForwardConfig": { - "additionalProperties": false, - "properties": { - "TargetGroupStickinessConfig": { - "$ref": "#/definitions/TargetGroupStickinessConfig" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupTuple" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "HostHeaderConfig": { - "additionalProperties": false, - "properties": { - "Values": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "HttpHeaderConfig": { - "additionalProperties": false, - "properties": { - "HttpHeaderName": { - "type": "string" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "HttpRequestMethodConfig": { - "additionalProperties": false, - "properties": { - "Values": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "PathPatternConfig": { - "additionalProperties": false, - "properties": { - "Values": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "QueryStringConfig": { - "additionalProperties": false, - "properties": { - "Values": { - "items": { - "$ref": "#/definitions/QueryStringKeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "QueryStringKeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "RedirectConfig": { - "additionalProperties": false, - "properties": { - "Host": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "Port": { - "type": "string" - }, - "Protocol": { - "type": "string" - }, - "Query": { - "type": "string" - }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "RuleCondition": { - "additionalProperties": false, - "properties": { - "Field": { - "type": "string" - }, - "HostHeaderConfig": { - "$ref": "#/definitions/HostHeaderConfig" - }, - "HttpHeaderConfig": { - "$ref": "#/definitions/HttpHeaderConfig" - }, - "HttpRequestMethodConfig": { - "$ref": "#/definitions/HttpRequestMethodConfig" - }, - "PathPatternConfig": { - "$ref": "#/definitions/PathPatternConfig" - }, - "QueryStringConfig": { - "$ref": "#/definitions/QueryStringConfig" - }, - "SourceIpConfig": { - "$ref": "#/definitions/SourceIpConfig" - }, - "Values": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "SourceIpConfig": { - "additionalProperties": false, - "properties": { - "Values": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TargetGroupStickinessConfig": { - "additionalProperties": false, - "properties": { - "DurationSeconds": { - "type": "integer" - }, - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "TargetGroupTuple": { - "additionalProperties": false, - "properties": { - "TargetGroupArn": { - "type": "string" - }, - "Weight": { - "type": "integer" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "elasticloadbalancing:CreateRule", - "elasticloadbalancing:DescribeRules" - ] - }, - "delete": { - "permissions": [ - "elasticloadbalancing:DeleteRule" - ] - }, - "list": { - "permissions": [ - "elasticloadbalancing:DescribeRules" - ] - }, - "read": { - "permissions": [ - "elasticloadbalancing:DescribeRules" - ] - }, - "update": { - "permissions": [ - "elasticloadbalancing:ModifyRule", - "elasticloadbalancing:SetRulePriorities", - "elasticloadbalancing:DescribeRules" - ] - } - }, - "primaryIdentifier": [ - "/properties/RuleArn" - ], - "properties": { - "Actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": true - }, - "Conditions": { - "items": { - "$ref": "#/definitions/RuleCondition" - }, - "type": "array", - "uniqueItems": true - }, - "IsDefault": { - "type": "boolean" - }, - "ListenerArn": { - "type": "string" - }, - "Priority": { - "maximum": 50000, - "minimum": 1, - "type": "integer" - }, - "RuleArn": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/RuleArn", - "/properties/IsDefault" - ], - "required": [ - "ListenerArn", - "Actions", - "Priority", - "Conditions" - ], - "taggable": false, - "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule", - "writeOnlyProperties": [ - "/properties/Actions/*/AuthenticateOidcConfig/ClientSecret", - "/properties/Actions/*/ForwardConfig", - "/properties/Actions/*/TargetGroupArn" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json deleted file mode 100644 index 4195a7abc7..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-elasticloadbalancingv2-loadbalancer.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Type", - "/properties/Scheme" - ], - "definitions": { - "LoadBalancerAttribute": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "SubnetMapping": { - "additionalProperties": false, - "properties": { - "AllocationId": { - "type": "string" - }, - "IPv6Address": { - "type": "string" - }, - "PrivateIPv4Address": { - "type": "string" - }, - "SubnetId": { - "type": "string" - } - }, - "required": [ - "SubnetId" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", - "handlers": { - "create": { - "permissions": [ - "elasticloadbalancing:CreateLoadBalancer", - "elasticloadbalancing:DescribeLoadBalancers", - "elasticloadbalancing:ModifyLoadBalancerAttributes", - "elasticloadbalancing:AddTags" - ] - }, - "delete": { - "permissions": [ - "elasticloadbalancing:DescribeLoadBalancers", - "elasticloadbalancing:DeleteLoadBalancer" - ] - }, - "list": { - "permissions": [ - "elasticloadbalancing:DescribeLoadBalancers" - ] - }, - "read": { - "permissions": [ - "elasticloadbalancing:DescribeLoadBalancers", - "elasticloadbalancing:DescribeLoadBalancerAttributes", - "elasticloadbalancing:DescribeTags" - ] - }, - "update": { - "permissions": [ - "elasticloadbalancing:ModifyLoadBalancerAttributes", - "elasticloadbalancing:SetSubnets", - "elasticloadbalancing:SetIpAddressType", - "elasticloadbalancing:SetSecurityGroups", - "elasticloadbalancing:AddTags", - "elasticloadbalancing:RemoveTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/LoadBalancerArn" - ], - "properties": { - "CanonicalHostedZoneID": { - "type": "string" - }, - "DNSName": { - "type": "string" - }, - "IpAddressType": { - "type": "string" - }, - "LoadBalancerArn": { - "type": "string" - }, - "LoadBalancerAttributes": { - "arrayType": "AttributeList", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoadBalancerAttribute" - }, - "type": "array", - "uniqueItems": true - }, - "LoadBalancerFullName": { - "type": "string" - }, - "LoadBalancerName": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Scheme": { - "type": "string" - }, - "SecurityGroups": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "SubnetMappings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SubnetMapping" - }, - "type": "array", - "uniqueItems": true - }, - "Subnets": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/LoadBalancerName", - "/properties/LoadBalancerFullName", - "/properties/CanonicalHostedZoneID", - "/properties/LoadBalancerArn", - "/properties/DNSName" - ], - "requiredXor": [ - "SubnetMappings", - "Subnets" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-firewallrulegroup.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-firewallrulegroup.json new file mode 100644 index 0000000000..5b378de073 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-route53resolver-firewallrulegroup.json @@ -0,0 +1,243 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FirewallRule": { + "additionalProperties": false, + "properties": { + "Action": { + "enum": [ + "ALLOW", + "BLOCK", + "ALERT" + ], + "type": "string" + }, + "BlockOverrideDnsType": { + "enum": [ + "CNAME" + ], + "type": "string" + }, + "BlockOverrideDomain": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "BlockOverrideTtl": { + "maximum": 604800, + "minimum": 0, + "type": "integer" + }, + "BlockResponse": { + "enum": [ + "NODATA", + "NXDOMAIN", + "OVERRIDE" + ], + "type": "string" + }, + "FirewallDomainListId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "FirewallDomainRedirectionAction": { + "enum": [ + "INSPECT_REDIRECTION_DOMAIN", + "TRUST_REDIRECTION_DOMAIN" + ], + "type": "string" + }, + "Priority": { + "type": "integer" + }, + "Qtype": { + "maxLength": 16, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FirewallDomainListId", + "Priority", + "Action" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "delete": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "list": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "read": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "update": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "maxLength": 600, + "minLength": 1, + "type": "string" + }, + "CreationTime": { + "maxLength": 40, + "minLength": 20, + "type": "string" + }, + "CreatorRequestId": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "FirewallRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FirewallRule" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ModificationTime": { + "maxLength": 40, + "minLength": 20, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "OwnerId": { + "maxLength": 32, + "minLength": 12, + "type": "string" + }, + "RuleCount": { + "type": "integer" + }, + "ShareStatus": { + "enum": [ + "NOT_SHARED", + "SHARED_WITH_ME", + "SHARED_BY_ME" + ], + "type": "string" + }, + "Status": { + "enum": [ + "COMPLETE", + "DELETING", + "UPDATING", + "INACTIVE_OWNER_ACCOUNT_CLOSED" + ], + "type": "string" + }, + "StatusMessage": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/RuleCount", + "/properties/Status", + "/properties/StatusMessage", + "/properties/OwnerId", + "/properties/ShareStatus", + "/properties/CreatorRequestId", + "/properties/CreationTime", + "/properties/ModificationTime" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::FirewallRuleGroup" +} 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 452125d408..f2fa1e9102 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -636,7 +636,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", @@ -755,6 +754,7 @@ "aws-securityhub-hub.json", "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", + "aws-transfer-profile.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", @@ -776,9 +776,11 @@ "aws-apigateway-usageplankey.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-neptune-dbcluster.json", "aws-cloudwatch-anomalydetector.json", @@ -882,6 +884,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -920,7 +923,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -958,6 +960,7 @@ "aws-cloudwatch-dashboard.json", "aws-appsync-graphqlschema.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -982,7 +985,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", @@ -1140,7 +1142,6 @@ "aws-opsworks-elasticloadbalancerattachment.json", "aws-ec2-vpcendpoint.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-budgets-budget.json", "aws-dms-replicationsubnetgroup.json", "aws-elasticache-subnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py index ea7835f6c8..e97b54f4ab 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -1484,7 +1484,7 @@ "aws-apigateway-usageplan.json", "aws-gamelift-gameservergroup.json", "aws-robomaker-robotapplication.json", - "aws-qldb-stream.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", @@ -1549,6 +1549,7 @@ "aws-workspacesthinclient-environment.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1678,6 +1679,7 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", + "aws-route53-hostedzone.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", @@ -1759,7 +1761,6 @@ "aws-neptunegraph-privategraphendpoint.json", "aws-iotfleetwise-signalcatalog.json", "aws-docdb-eventsubscription.json", - "aws-route53resolver-firewallrulegroup.json", "aws-autoscaling-scalingpolicy.json", "aws-lightsail-bucket.json", "aws-scheduler-schedule.json", @@ -1815,6 +1816,7 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", + "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1854,6 +1856,7 @@ "aws-logs-deliverysource.json", "aws-pinpointemail-configurationset.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-greengrass-functiondefinition.json", @@ -2131,6 +2134,7 @@ "aws-appstream-fleet.json", "aws-ec2-carriergateway.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -2257,7 +2261,6 @@ "aws-resourceexplorer2-view.json", "aws-ivs-stage.json", "aws-certificatemanager-account.json", - "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", @@ -2305,6 +2308,7 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-oam-link.json", "aws-wafv2-loggingconfiguration.json", + "aws-quicksight-topic.json", "aws-deadline-farm.json", "aws-ec2-keypair.json", "aws-pinpointemail-dedicatedippool.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index ecdb17a904..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-location-apikey.json new file mode 100644 index 0000000000..3cfbf7cd5b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_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]+))$", + "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": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "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/eu_central_1/aws-qldb-stream.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-qldb-stream.json new file mode 100644 index 0000000000..6f5dfc113d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-qldb-stream.json @@ -0,0 +1,146 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/LedgerName", + "/properties/StreamName", + "/properties/RoleArn", + "/properties/KinesisConfiguration", + "/properties/InclusiveStartTime", + "/properties/ExclusiveEndTime" + ], + "definitions": { + "Arn": { + "pattern": "arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*", + "type": "string" + }, + "KinesisConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationEnabled": { + "type": "boolean" + }, + "StreamArn": { + "$ref": "#/definitions/Arn", + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "qldb:StreamJournalToKinesis", + "qldb:DescribeJournalKinesisStream" + ] + }, + "delete": { + "permissions": [ + "qldb:CancelJournalKinesisStream", + "qldb:DescribeJournalKinesisStream" + ] + }, + "list": { + "permissions": [ + "qldb:listJournalKinesisStreamsForLedger" + ] + }, + "read": { + "permissions": [ + "qldb:DescribeJournalKinesisStream", + "qldb:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "qldb:DescribeJournalKinesisStream", + "qldb:UntagResource", + "qldb:TagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/LedgerName", + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/Arn" + }, + "ExclusiveEndTime": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InclusiveStartTime": { + "type": "string" + }, + "KinesisConfiguration": { + "$ref": "#/definitions/KinesisConfiguration" + }, + "LedgerName": { + "type": "string" + }, + "RoleArn": { + "$ref": "#/definitions/Arn" + }, + "StreamName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "LedgerName", + "StreamName", + "RoleArn", + "KinesisConfiguration", + "InclusiveStartTime" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "qldb:TagResource", + "qldb:UntagResource", + "qldb:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::QLDB::Stream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53resolver-firewallrulegroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53resolver-firewallrulegroup.json new file mode 100644 index 0000000000..5b378de073 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-route53resolver-firewallrulegroup.json @@ -0,0 +1,243 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FirewallRule": { + "additionalProperties": false, + "properties": { + "Action": { + "enum": [ + "ALLOW", + "BLOCK", + "ALERT" + ], + "type": "string" + }, + "BlockOverrideDnsType": { + "enum": [ + "CNAME" + ], + "type": "string" + }, + "BlockOverrideDomain": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "BlockOverrideTtl": { + "maximum": 604800, + "minimum": 0, + "type": "integer" + }, + "BlockResponse": { + "enum": [ + "NODATA", + "NXDOMAIN", + "OVERRIDE" + ], + "type": "string" + }, + "FirewallDomainListId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "FirewallDomainRedirectionAction": { + "enum": [ + "INSPECT_REDIRECTION_DOMAIN", + "TRUST_REDIRECTION_DOMAIN" + ], + "type": "string" + }, + "Priority": { + "type": "integer" + }, + "Qtype": { + "maxLength": 16, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FirewallDomainListId", + "Priority", + "Action" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "delete": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "list": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "read": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "update": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "maxLength": 600, + "minLength": 1, + "type": "string" + }, + "CreationTime": { + "maxLength": 40, + "minLength": 20, + "type": "string" + }, + "CreatorRequestId": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "FirewallRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FirewallRule" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ModificationTime": { + "maxLength": 40, + "minLength": 20, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "OwnerId": { + "maxLength": 32, + "minLength": 12, + "type": "string" + }, + "RuleCount": { + "type": "integer" + }, + "ShareStatus": { + "enum": [ + "NOT_SHARED", + "SHARED_WITH_ME", + "SHARED_BY_ME" + ], + "type": "string" + }, + "Status": { + "enum": [ + "COMPLETE", + "DELETING", + "UPDATING", + "INACTIVE_OWNER_ACCOUNT_CLOSED" + ], + "type": "string" + }, + "StatusMessage": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/RuleCount", + "/properties/Status", + "/properties/StatusMessage", + "/properties/OwnerId", + "/properties/ShareStatus", + "/properties/CreatorRequestId", + "/properties/CreationTime", + "/properties/ModificationTime" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::FirewallRuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py index 4e89e6993a..5d2a5f5ab0 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -373,6 +373,7 @@ "AWS::Chatbot::SlackChannelConfiguration", "AWS::Glue::Classifier", "AWS::FMS::ResourceSet", + "AWS::RUM::AppMonitor", "AWS::EC2::VPCEndpointServicePermissions", "AWS::AppConfig::ExtensionAssociation", "AWS::IoT::ThingPrincipalAttachment", @@ -558,9 +559,8 @@ "aws-servicecatalog-tagoption.json", "aws-route53resolver-resolverconfig.json", "aws-securityhub-delegatedadmin.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", - "aws-redshift-scheduledaction.json", + "aws-elasticache-serverlesscache.json", "aws-datasync-locationobjectstorage.json", "aws-logs-deliverydestination.json", "aws-appsync-graphqlapi.json", @@ -583,7 +583,6 @@ "aws-ec2-vpcgatewayattachment.json", "aws-cognito-userpoolriskconfigurationattachment.json", "aws-sns-subscription.json", - "aws-redshift-cluster.json", "aws-lakeformation-datalakesettings.json", "aws-sagemaker-modelcard.json", "aws-logs-querydefinition.json", @@ -656,11 +655,13 @@ "aws-lambda-permission.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", @@ -672,11 +673,14 @@ "aws-certificatemanager-certificate.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-cloudwatch-alarm.json", "aws-backup-backupplan.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -747,7 +751,6 @@ "aws-datasync-locationhdfs.json", "aws-elasticache-parametergroup.json", "aws-organizations-account.json", - "aws-redshift-endpointauthorization.json", "aws-lakeformation-permissions.json", "aws-ec2-eip.json", "aws-ec2-vpcpeeringconnection.json", @@ -759,6 +762,7 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-ssm-document.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-networkfirewall-loggingconfiguration.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-organizations-organization.json", @@ -790,7 +794,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -810,6 +813,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-eventschemas-schema.json", @@ -824,6 +828,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-globalaccelerator-listener.json", "aws-redshift-clustersecuritygroup.json", @@ -847,13 +852,13 @@ "aws-pcaconnectorad-directoryregistration.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", "aws-chatbot-slackchannelconfiguration.json", "aws-glue-classifier.json", "aws-fms-resourceset.json", + "aws-rum-appmonitor.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-appconfig-extensionassociation.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -914,6 +919,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -985,7 +991,6 @@ "aws-opsworks-elasticloadbalancerattachment.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-sqs-queue.json", "aws-datasync-locationsmb.json", "aws-ec2-vpcendpointconnectionnotification.json", @@ -994,8 +999,6 @@ "aws-ec2-keypair.json", "aws-guardduty-member.json", "aws-rds-dbcluster.json", - "aws-redshift-endpointaccess.json", - "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", "aws-emr-studio.json", "aws-s3-accessgrant.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-serverlesscache.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-serverlesscache.json deleted file mode 100644 index 745018a609..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-serverlesscache.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerlessCacheName", - "/properties/Engine", - "/properties/MajorEngineVersion", - "/properties/KmsKeyId", - "/properties/SnapshotArnsToRestore", - "/properties/SubnetIds" - ], - "definitions": { - "CacheUsageLimits": { - "additionalProperties": false, - "properties": { - "DataStorage": { - "$ref": "#/definitions/DataStorage" - }, - "ECPUPerSecond": { - "$ref": "#/definitions/ECPUPerSecond" - } - }, - "type": "object" - }, - "DataStorage": { - "additionalProperties": false, - "properties": { - "Maximum": { - "type": "integer" - }, - "Unit": { - "enum": [ - "GB" - ], - "type": "string" - } - }, - "required": [ - "Maximum", - "Unit" - ], - "type": "object" - }, - "ECPUPerSecond": { - "additionalProperties": false, - "properties": { - "Maximum": { - "type": "integer" - } - }, - "required": [ - "Maximum" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "integer" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "elasticache:CreateServerlessCache", - "elasticache:DescribeServerlessCaches", - "elasticache:AddTagsToResource", - "elasticache:ListTagsForResource", - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "elasticache:DeleteServerlessCache", - "elasticache:DescribeServerlessCaches", - "elasticache:ListTagsForResource" - ] - }, - "list": { - "permissions": [ - "elasticache:DescribeServerlessCaches", - "elasticache:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "elasticache:DescribeServerlessCaches", - "elasticache:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "elasticache:ModifyServerlessCache", - "elasticache:DescribeServerlessCaches", - "elasticache:AddTagsToResource", - "elasticache:ListTagsForResource", - "elasticache:RemoveTagsFromResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ServerlessCacheName" - ], - "properties": { - "ARN": { - "type": "string" - }, - "CacheUsageLimits": { - "$ref": "#/definitions/CacheUsageLimits" - }, - "CreateTime": { - "type": "string" - }, - "DailySnapshotTime": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "FinalSnapshotName": { - "type": "string" - }, - "FullEngineVersion": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MajorEngineVersion": { - "type": "string" - }, - "ReaderEndpoint": { - "$ref": "#/definitions/Endpoint" - }, - "SecurityGroupIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ServerlessCacheName": { - "type": "string" - }, - "SnapshotArnsToRestore": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "SnapshotRetentionLimit": { - "type": "integer" - }, - "Status": { - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "UserGroupId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/FullEngineVersion", - "/properties/CreateTime", - "/properties/Status", - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/ReaderEndpoint/Address", - "/properties/ReaderEndpoint/Port", - "/properties/ARN" - ], - "required": [ - "ServerlessCacheName", - "Engine" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticache", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ElastiCache::ServerlessCache", - "writeOnlyProperties": [ - "/properties/SnapshotArnsToRestore", - "/properties/FinalSnapshotName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-cluster.json new file mode 100644 index 0000000000..a0e7bd75e0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-cluster.json @@ -0,0 +1,432 @@ +{ + "additionalProperties": false, + "cfnLint": "AWS::Redshift::Cluster/Properties", + "createOnlyProperties": [ + "/properties/ClusterIdentifier", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/ClusterSubnetGroupName", + "/properties/MasterUsername" + ], + "definitions": { + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "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": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "redshift:DescribeClusters", + "redshift:CreateCluster", + "redshift:RestoreFromClusterSnapshot", + "redshift:EnableLogging", + "redshift:DescribeLoggingStatus", + "redshift:CreateTags", + "redshift:DescribeTags", + "redshift:GetResourcePolicy", + "redshift:PutResourcePolicy", + "redshift:ModifyClusterMaintenance", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeAddresses", + "ec2:AssociateAddress", + "ec2:CreateNetworkInterface", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", + "ec2:ModifyVpcEndpoint", + "ec2:AllocateAddress", + "ec2:CreateSecurityGroup", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroupRules", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeNetworkAcls", + "ec2:DescribeRouteTables", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeClusters", + "redshift:DeleteCluster" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeClusters" + ] + }, + "read": { + "permissions": [ + "redshift:DescribeClusters", + "redshift:DescribeLoggingStatus", + "redshift:DescribeSnapshotCopyGrant", + "redshift:DescribeClusterDbRevisions", + "redshift:DescribeTags", + "redshift:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "redshift:DescribeClusters", + "redshift:ModifyCluster", + "redshift:ModifyClusterIamRoles", + "redshift:EnableLogging", + "redshift:CreateTags", + "redshift:DeleteTags", + "redshift:DescribeTags", + "redshift:DisableLogging", + "redshift:DescribeLoggingStatus", + "redshift:RebootCluster", + "redshift:EnableSnapshotCopy", + "redshift:DisableSnapshotCopy", + "redshift:ModifySnapshotCopyRetentionPeriod", + "redshift:ModifyAquaConfiguration", + "redshift:ResizeCluster", + "redshift:ModifyClusterMaintenance", + "redshift:DescribeClusterDbRevisions", + "redshift:ModifyClusterDbRevisions", + "redshift:PauseCluster", + "redshift:ResumeCluster", + "redshift:RotateEncryptionKey", + "redshift:FailoverPrimaryCompute", + "redshift:PutResourcePolicy", + "redshift:GetResourcePolicy", + "redshift:DeleteResourcePolicy", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/ClusterIdentifier" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AquaConfigurationStatus": { + "type": "string" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneRelocation": { + "type": "boolean" + }, + "AvailabilityZoneRelocationStatus": { + "type": "string" + }, + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "maxLength": 63, + "type": "string" + }, + "ClusterNamespaceArn": { + "type": "string" + }, + "ClusterParameterGroupName": { + "maxLength": 255, + "type": "string" + }, + "ClusterSecurityGroups": { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::EC2::SecurityGroup" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::Redshift::ClusterSecurityGroup" + } + } + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "DeferMaintenance": { + "type": "boolean" + }, + "DeferMaintenanceDuration": { + "type": "integer" + }, + "DeferMaintenanceEndTime": { + "type": "string" + }, + "DeferMaintenanceIdentifier": { + "type": "string" + }, + "DeferMaintenanceStartTime": { + "type": "string" + }, + "DestinationRegion": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "insertionOrder": false, + "items": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::IAM::Role" + }, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "KmsKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MaintenanceTrackName": { + "type": "string" + }, + "ManageMasterPassword": { + "type": "boolean" + }, + "ManualSnapshotRetentionPeriod": { + "type": "integer" + }, + "MasterPasswordSecretArn": { + "type": "string" + }, + "MasterPasswordSecretKmsKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + } + ], + "type": "string" + }, + "MasterUserPassword": { + "maxLength": 64, + "type": "string" + }, + "MasterUsername": { + "maxLength": 128, + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NamespaceResourcePolicy": { + "type": "object" + }, + "NodeType": { + "cfnLint": "AWS::Redshift::Cluster/Properties/NodeType", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ResourceAction": { + "type": "string" + }, + "RevisionTarget": { + "type": "string" + }, + "RotateEncryptionKey": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotCopyGrantName": { + "type": "string" + }, + "SnapshotCopyManual": { + "type": "boolean" + }, + "SnapshotCopyRetentionPeriod": { + "type": "integer" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "insertionOrder": false, + "items": { + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DeferMaintenanceIdentifier", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address", + "/properties/ClusterNamespaceArn", + "/properties/MasterPasswordSecretArn" + ], + "required": [ + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Redshift::Cluster", + "writeOnlyProperties": [ + "/properties/MasterUserPassword", + "/properties/Classic", + "/properties/SnapshotIdentifier", + "/properties/DeferMaintenance", + "/properties/DeferMaintenanceDuration", + "/properties/ManageMasterPassword" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clustersubnetgroup.json new file mode 100644 index 0000000000..64a270fa67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,162 @@ +{ + "additionalProperties": false, + "definitions": { + "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": [ + "redshift:CreateClusterSubnetGroup", + "redshift:CreateTags", + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", + "ec2:AllocateAddress", + "ec2:AssociateAddress", + "ec2:AttachNetworkInterface", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "redshift:DeleteClusterSubnetGroup", + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", + "ec2:AllocateAddress", + "ec2:AssociateAddress", + "ec2:AttachNetworkInterface", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + }, + "list": { + "permissions": [ + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", + "ec2:AllocateAddress", + "ec2:AssociateAddress", + "ec2:AttachNetworkInterface", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", + "ec2:AllocateAddress", + "ec2:AssociateAddress", + "ec2:AttachNetworkInterface", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + }, + "update": { + "permissions": [ + "redshift:ModifyClusterSubnetGroup", + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", + "redshift:CreateTags", + "redshift:DeleteTags", + "ec2:AllocateAddress", + "ec2:AssociateAddress", + "ec2:AttachNetworkInterface", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/ClusterSubnetGroupName" + ], + "properties": { + "ClusterSubnetGroupName": { + "maxLength": 255, + "type": "string" + }, + "Description": { + "type": "string" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/ClusterSubnetGroupName" + ], + "required": [ + "Description", + "SubnetIds" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Redshift::ClusterSubnetGroup", + "writeOnlyProperties": [ + "/properties/Tags", + "/properties/Tags/*/Key", + "/properties/Tags/*/Value" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointaccess.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointaccess.json new file mode 100644 index 0000000000..bffcf1c404 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointaccess.json @@ -0,0 +1,226 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/EndpointName", + "/properties/ClusterIdentifier", + "/properties/ResourceOwner", + "/properties/SubnetGroupName" + ], + "definitions": { + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "NetworkInterfaceId": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::EC2::NetworkInterface" + }, + "type": "string" + }, + "PrivateIpAddress": { + "relationshipRef": { + "propertyPath": "/properties/PrivateIpAddress", + "typeName": "AWS::EC2::NetworkInterface" + }, + "type": "string" + }, + "SubnetId": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::NetworkInterface" + }, + "type": "string" + } + }, + "type": "object" + }, + "VpcSecurityGroup": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "VpcSecurityGroupId": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::EC2::SecurityGroup" + }, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "redshift:CreateEndpointAccess", + "redshift:DescribeEndpointAccess", + "ec2:CreateClientVpnEndpoint", + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeAddresses", + "ec2:DescribeInternetGateways", + "ec2:DescribeSubnets" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "redshift:DeleteEndpointAccess", + "redshift:DescribeEndpointAccess", + "ec2:DeleteClientVpnEndpoint", + "ec2:DeleteVpcEndpoint", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeAddresses", + "ec2:DescribeInternetGateways", + "ec2:DescribeSubnets", + "ec2:DescribeVpcEndpoint" + ], + "timeoutInMinutes": 60 + }, + "list": { + "permissions": [ + "redshift:DescribeEndpointAccess", + "ec2:DescribeClientVpnEndpoints", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeAddresses", + "ec2:DescribeInternetGateways", + "ec2:DescribeSubnets" + ] + }, + "read": { + "permissions": [ + "redshift:DescribeEndpointAccess", + "ec2:DescribeClientVpnEndpoints", + "ec2:DescribeVpcEndpoint", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeAddresses", + "ec2:DescribeInternetGateways", + "ec2:DescribeSubnets" + ] + }, + "update": { + "permissions": [ + "redshift:DescribeEndpointAccess", + "redshift:ModifyEndpointAccess", + "ec2:ModifyClientVpnEndpoint", + "ec2:ModifyVpcEndpoint", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeAddresses", + "ec2:DescribeInternetGateways", + "ec2:DescribeSubnets" + ], + "timeoutInMinutes": 60 + } + }, + "primaryIdentifier": [ + "/properties/EndpointName" + ], + "properties": { + "Address": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "EndpointCreateTime": { + "type": "string" + }, + "EndpointName": { + "pattern": "^(?=^[a-z][a-z0-9]*(-[a-z0-9]+)*$).{1,30}$", + "type": "string" + }, + "EndpointStatus": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "ResourceOwner": { + "pattern": "^\\d{12}$", + "type": "string" + }, + "SubnetGroupName": { + "pattern": "^(?=^[a-zA-Z0-9-]+$).{1,255}$", + "type": "string" + }, + "VpcEndpoint": { + "additionalProperties": false, + "properties": { + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array" + }, + "VpcEndpointId": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::EC2::VPCEndpoint" + }, + "type": "string" + }, + "VpcId": { + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPCEndpoint" + }, + "type": "string" + } + }, + "type": "object" + }, + "VpcSecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcSecurityGroups": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpcSecurityGroup" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Address", + "/properties/EndpointStatus", + "/properties/EndpointCreateTime", + "/properties/Port", + "/properties/VpcSecurityGroups", + "/properties/VpcSecurityGroups/*/VpcSecurityGroupId", + "/properties/VpcSecurityGroups/*/Status", + "/properties/VpcEndpoint", + "/properties/VpcEndpoint/VpcEndpointId", + "/properties/VpcEndpoint/VpcId", + "/properties/VpcEndpoint/NetworkInterfaces/*/NetworkInterfaceId", + "/properties/VpcEndpoint/NetworkInterfaces/*/PrivateIpAddress", + "/properties/VpcEndpoint/NetworkInterfaces/*/SubnetId", + "/properties/VpcEndpoint/NetworkInterfaces/*/AvailabilityZone" + ], + "required": [ + "ClusterIdentifier", + "SubnetGroupName", + "EndpointName", + "VpcSecurityGroupIds" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Redshift::EndpointAccess" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointauthorization.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointauthorization.json new file mode 100644 index 0000000000..cb84deb32a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-endpointauthorization.json @@ -0,0 +1,135 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterIdentifier", + "/properties/Account" + ], + "definitions": { + "AwsAccount": { + "pattern": "^\\d{12}$", + "type": "string" + }, + "VpcId": { + "pattern": "^vpc-[A-Za-z0-9]{1,17}$", + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "redshift:AuthorizeEndpointAccess", + "redshift:DescribeEndpointAuthorization" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "redshift:RevokeEndpointAccess", + "redshift:DeleteEndpointAccess", + "redshift:DescribeEndpointAuthorization", + "ec2:DeleteClientVpnEndpoint", + "ec2:DescribeVpcAttribute", + "ec2:DescribeSecurityGroups", + "ec2:DescribeAddresses", + "ec2:DescribeInternetGateways", + "ec2:DescribeSubnets" + ], + "timeoutInMinutes": 60 + }, + "list": { + "permissions": [ + "redshift:DescribeEndpointAuthorization" + ] + }, + "read": { + "permissions": [ + "redshift:DescribeEndpointAuthorization" + ] + }, + "update": { + "permissions": [ + "redshift:AuthorizeEndpointAccess", + "redshift:DescribeEndpointAuthorization", + "redshift:RevokeEndpointAccess" + ], + "timeoutInMinutes": 60 + } + }, + "primaryIdentifier": [ + "/properties/ClusterIdentifier", + "/properties/Account" + ], + "properties": { + "Account": { + "$ref": "#/definitions/AwsAccount" + }, + "AllowedAllVPCs": { + "type": "boolean" + }, + "AllowedVPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpcId" + }, + "type": "array" + }, + "AuthorizeTime": { + "type": "string" + }, + "ClusterIdentifier": { + "pattern": "^(?=^[a-z][a-z0-9]*(-[a-z0-9]+)*$).{1,63}$", + "type": "string" + }, + "ClusterStatus": { + "type": "string" + }, + "EndpointCount": { + "type": "integer" + }, + "Force": { + "type": "boolean" + }, + "Grantee": { + "$ref": "#/definitions/AwsAccount" + }, + "Grantor": { + "$ref": "#/definitions/AwsAccount" + }, + "Status": { + "type": "string" + }, + "VpcIds": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpcId" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Grantor", + "/properties/Grantee", + "/properties/AuthorizeTime", + "/properties/ClusterStatus", + "/properties/Status", + "/properties/AllowedAllVPCs", + "/properties/AllowedVPCs", + "/properties/EndpointCount" + ], + "required": [ + "ClusterIdentifier", + "Account" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Redshift::EndpointAuthorization", + "writeOnlyProperties": [ + "/properties/Force" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-scheduledaction.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-scheduledaction.json new file mode 100644 index 0000000000..515818f15b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-scheduledaction.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ScheduledActionName" + ], + "definitions": { + "PauseClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "relationshipRef": { + "propertyPath": "/properties/ClusterIdentifier", + "typeName": "AWS::Redshift::Cluster" + }, + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "relationshipRef": { + "propertyPath": "/properties/ClusterIdentifier", + "typeName": "AWS::Redshift::Cluster" + }, + "type": "string" + }, + "ClusterType": { + "relationshipRef": { + "propertyPath": "/properties/ClusterType", + "typeName": "AWS::Redshift::Cluster" + }, + "type": "string" + }, + "NodeType": { + "relationshipRef": { + "propertyPath": "/properties/NodeType", + "typeName": "AWS::Redshift::Cluster" + }, + "type": "string" + }, + "NumberOfNodes": { + "relationshipRef": { + "propertyPath": "/properties/NumberOfNodes", + "typeName": "AWS::Redshift::Cluster" + }, + "type": "integer" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "relationshipRef": { + "propertyPath": "/properties/ClusterIdentifier", + "typeName": "AWS::Redshift::Cluster" + }, + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "ScheduledActionType": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "ResizeCluster": { + "$ref": "#/definitions/ResizeClusterMessage" + } + } + }, + { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/PauseClusterMessage" + } + } + }, + { + "additionalProperties": false, + "properties": { + "ResumeCluster": { + "$ref": "#/definitions/ResumeClusterMessage" + } + } + } + ], + "type": "object" + }, + "timestamp": { + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "redshift:CreateScheduledAction", + "redshift:DescribeScheduledActions", + "redshift:DescribeTags", + "redshift:PauseCluster", + "redshift:ResumeCluster", + "redshift:ResizeCluster", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeScheduledActions", + "redshift:DeleteScheduledAction" + ] + }, + "list": { + "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeScheduledActions" + ] + }, + "read": { + "permissions": [ + "redshift:DescribeScheduledActions", + "redshift:DescribeTags" + ] + }, + "update": { + "permissions": [ + "redshift:DescribeScheduledActions", + "redshift:ModifyScheduledAction", + "redshift:PauseCluster", + "redshift:ResumeCluster", + "redshift:ResizeCluster", + "redshift:DescribeTags", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/ScheduledActionName" + ], + "properties": { + "Enable": { + "type": "boolean" + }, + "EndTime": { + "$ref": "#/definitions/timestamp" + }, + "IamRole": { + "type": "string" + }, + "NextInvocations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/timestamp" + }, + "type": "array" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionDescription": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "$ref": "#/definitions/timestamp" + }, + "State": { + "enum": [ + "ACTIVE", + "DISABLED" + ], + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/ScheduledActionType" + } + }, + "readOnlyProperties": [ + "/properties/State", + "/properties/NextInvocations" + ], + "required": [ + "ScheduledActionName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-redshift", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Redshift::ScheduledAction" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py index c4a7644778..ce58410ac2 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -955,7 +955,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1160,6 +1159,7 @@ "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", "aws-vpclattice-rule.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-sagemaker-inferencecomponent.json", "aws-servicecatalog-launchtemplateconstraint.json", @@ -1168,6 +1168,7 @@ "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", @@ -1187,10 +1188,12 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-wafregional-sizeconstraintset.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-s3-multiregionaccesspointpolicy.json", "aws-ses-emailidentity.json", @@ -1209,6 +1212,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1315,7 +1319,6 @@ "aws-servicediscovery-httpnamespace.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-apigatewayv2-vpclink.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", @@ -1323,6 +1326,8 @@ "aws-apigateway-documentationversion.json", "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-opsworks-stack.json", @@ -1363,6 +1368,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1417,7 +1423,6 @@ "aws-timestream-influxdbinstance.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-ec2-verifiedaccessendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", @@ -1451,6 +1456,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1473,6 +1479,7 @@ "aws-organizations-resourcepolicy.json", "aws-lightsail-loadbalancer.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1521,7 +1528,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-evidently-project.json", "aws-detective-organizationadmin.json", @@ -1664,6 +1670,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1767,7 +1774,6 @@ "aws-ec2-verifiedaccesstrustprovider.json", "aws-resourceexplorer2-view.json", "aws-certificatemanager-account.json", - "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", @@ -1782,7 +1788,6 @@ "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", "aws-ec2-clientvpnauthorizationrule.json", - "aws-fms-policy.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index ecdb17a904..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-location-apikey.json new file mode 100644 index 0000000000..3cfbf7cd5b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_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]+))$", + "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": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "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/eu_north_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py index 226e78e860..6e6bfa4865 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -760,7 +760,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -907,6 +906,7 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", @@ -914,6 +914,7 @@ "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", @@ -932,9 +933,11 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-ses-emailidentity.json", "aws-cloudwatch-anomalydetector.json", @@ -946,6 +949,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -1058,6 +1062,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1103,7 +1108,6 @@ "aws-ssm-association.json", "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-ec2-verifiedaccessendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", @@ -1129,6 +1133,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1147,6 +1152,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1184,7 +1190,6 @@ "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1290,6 +1295,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1385,7 +1391,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py index 4770291926..206677b2d0 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -380,6 +380,7 @@ "AWS::Glue::Classifier", "AWS::SageMaker::ModelPackageGroup", "AWS::FMS::ResourceSet", + "AWS::RUM::AppMonitor", "AWS::EC2::VPCEndpointServicePermissions", "AWS::AppConfig::ExtensionAssociation", "AWS::IoT::ThingPrincipalAttachment", @@ -570,7 +571,6 @@ "aws-route53resolver-resolverconfig.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", @@ -674,12 +674,14 @@ "aws-lambda-permission.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", @@ -692,11 +694,14 @@ "aws-certificatemanager-certificate.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-cloudwatch-alarm.json", "aws-backup-backupplan.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -758,6 +763,8 @@ "aws-servicecatalogappregistry-resourceassociation.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ec2-subnet.json", @@ -780,6 +787,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -813,7 +821,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -833,6 +840,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-ec2-subnetcidrblock.json", "aws-eventschemas-schema.json", "aws-identitystore-groupmembership.json", @@ -846,6 +854,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-globalaccelerator-listener.json", "aws-redshift-clustersecuritygroup.json", @@ -871,7 +880,6 @@ "aws-pcaconnectorad-directoryregistration.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", @@ -879,6 +887,7 @@ "aws-glue-classifier.json", "aws-sagemaker-modelpackagegroup.json", "aws-fms-resourceset.json", + "aws-rum-appmonitor.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-appconfig-extensionassociation.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -941,6 +950,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1012,7 +1022,6 @@ "aws-opsworks-elasticloadbalancerattachment.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-sagemaker-image.json", "aws-sqs-queue.json", "aws-datasync-locationsmb.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py index 02db865e67..2a34377d8a 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -1186,7 +1186,7 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-opensearchserverless-vpcendpoint.json", "aws-securityhub-delegatedadmin.json", - "aws-dynamodb-table.json", + "aws-sagemaker-domain.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1242,7 +1242,6 @@ "aws-pinpoint-admchannel.json", "aws-dms-replicationconfig.json", "aws-ecr-replicationconfiguration.json", - "aws-apigateway-method.json", "aws-accessanalyzer-analyzer.json", "aws-cloudtrail-resourcepolicy.json", "aws-dms-replicationinstance.json", @@ -1472,7 +1471,6 @@ "aws-cloudfront-keygroup.json", "aws-batch-computeenvironment.json", "aws-opsworks-layer.json", - "aws-directoryservice-simplead.json", "aws-ec2-enclavecertificateiamroleassociation.json", "aws-emr-cluster.json", "aws-datasync-locations3.json", @@ -1532,7 +1530,6 @@ "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", "aws-wafregional-sqlinjectionmatchset.json", - "aws-apigateway-restapi.json", "aws-ivs-recordingconfiguration.json", "aws-networkmanager-device.json", "aws-ec2-eipassociation.json", @@ -1667,6 +1664,7 @@ "aws-stepfunctions-activity.json", "aws-omics-rungroup.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", @@ -1724,6 +1722,7 @@ "aws-iot-authorizer.json", "aws-lex-botversion.json", "aws-iottwinmaker-workspace.json", + "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", "aws-greengrass-functiondefinitionversion.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1787,7 +1786,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1921,7 +1919,6 @@ "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", "aws-datapipeline-pipeline.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-evidently-project.json", @@ -2000,6 +1997,7 @@ "aws-mediapackage-channel.json", "aws-arczonalshift-zonalautoshiftconfiguration.json", "aws-greengrass-subscriptiondefinitionversion.json", + "aws-sagemaker-userprofile.json", "aws-fsx-volume.json", "aws-lightsail-container.json", "aws-ec2-vpngateway.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-method.json new file mode 100644 index 0000000000..ca560b975f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-method.json @@ -0,0 +1,283 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId", + "/properties/ResourceId", + "/properties/HttpMethod" + ], + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "enum": [ + "INTERNET", + "VPC_LINK" + ], + "type": "string" + }, + "ContentHandling": { + "enum": [ + "CONVERT_TO_BINARY", + "CONVERT_TO_TEXT" + ], + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "enum": [ + "WHEN_NO_MATCH", + "WHEN_NO_TEMPLATES", + "NEVER" + ], + "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" + }, + "TimeoutInMillis": { + "minimum": 50, + "type": "integer" + }, + "Type": { + "enum": [ + "AWS", + "AWS_PROXY", + "HTTP", + "HTTP_PROXY", + "MOCK" + ], + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "enum": [ + "CONVERT_TO_BINARY", + "CONVERT_TO_TEXT" + ], + "type": "string" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": [ + "boolean", + "string" + ] + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:PUT", + "apigateway:GET", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "apigateway:DELETE" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE", + "apigateway:PUT", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/RestApiId", + "/properties/ResourceId", + "/properties/HttpMethod" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": [ + "boolean", + "string" + ] + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "required": [ + "RestApiId", + "ResourceId", + "HttpMethod" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-restapi.json new file mode 100644 index 0000000000..c8bb89a943 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-apigateway-restapi.json @@ -0,0 +1,213 @@ +{ + "additionalProperties": false, + "cfnLint": [ + "AWS::ApiGateway::RestApi/Properties" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "relationshipRef": { + "propertyPath": "/properties/Id", + "typeName": "AWS::EC2::VPCEndpoint" + }, + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:GET", + "apigateway:POST", + "apigateway:PUT", + "apigateway:PATCH", + "apigateway:UpdateRestApiPolicy", + "s3:GetObject", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE", + "apigateway:PATCH", + "apigateway:PUT", + "apigateway:UpdateRestApiPolicy", + "s3:GetObject", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/RestApiId" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": [ + "object", + "string" + ] + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": [ + "object", + "string" + ] + }, + "Policy": { + "type": [ + "object", + "string" + ] + }, + "RestApiId": { + "type": "string" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/RestApiId", + "/properties/RootResourceId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ApiGateway::RestApi", + "writeOnlyProperties": [ + "/properties/Body", + "/properties/BodyS3Location", + "/properties/CloneFrom", + "/properties/FailOnWarnings", + "/properties/Mode", + "/properties/Parameters" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..ed5e95d666 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-directoryservice-simplead.json @@ -0,0 +1,155 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "$comment": "Contains VPC information", + "additionalProperties": false, + "properties": { + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html", + "handlers": { + "create": { + "permissions": [ + "ds:CreateDirectory", + "ds:CreateAlias", + "ds:EnableSso", + "ds:DescribeDirectories", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:CreateSecurityGroup", + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:CreateTags", + "ec2:RevokeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "ds:DeleteDirectory", + "ds:DescribeDirectories", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteSecurityGroup", + "ec2:DeleteNetworkInterface", + "ec2:RevokeSecurityGroupIngress", + "ec2:RevokeSecurityGroupEgress", + "ec2:DeleteTags" + ], + "timeoutInMinutes": 100 + }, + "list": { + "permissions": [ + "ds:DescribeDirectories" + ] + }, + "read": { + "permissions": [ + "ds:DescribeDirectories" + ] + }, + "update": { + "permissions": [ + "ds:EnableSso", + "ds:DisableSso", + "ds:DescribeDirectories" + ] + } + }, + "primaryIdentifier": [ + "/properties/DirectoryId" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DirectoryId": { + "type": "string" + }, + "DnsIpAddresses": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Alias", + "/properties/DnsIpAddresses", + "/properties/DirectoryId" + ], + "required": [ + "VpcSettings", + "Size", + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::DirectoryService::SimpleAD", + "writeOnlyProperties": [ + "/properties/Password" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-appimageconfig.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-appimageconfig.json deleted file mode 100644 index 01116f524b..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-appimageconfig.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppImageConfigName", - "/properties/Tags" - ], - "definitions": { - "ContainerConfig": { - "additionalProperties": false, - "properties": { - "ContainerArguments": { - "items": { - "$ref": "#/definitions/CustomImageContainerArguments" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "ContainerEntrypoint": { - "items": { - "$ref": "#/definitions/CustomImageContainerEntrypoint" - }, - "maxItems": 1, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "ContainerEnvironmentVariables": { - "items": { - "$ref": "#/definitions/CustomImageContainerEnvironmentVariable" - }, - "maxItems": 25, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CustomImageContainerArguments": { - "maxLength": 64, - "minLength": 1, - "pattern": "^(?!\\s*$).+", - "type": "string" - }, - "CustomImageContainerEntrypoint": { - "maxLength": 256, - "minLength": 1, - "pattern": "^(?!\\s*$).+", - "type": "string" - }, - "CustomImageContainerEnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 256, - "minLength": 1, - "pattern": "^(?!\\s*$).+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "pattern": "^(?!\\s*$).+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "FileSystemConfig": { - "additionalProperties": false, - "properties": { - "DefaultGid": { - "maximum": 65535, - "minimum": 0, - "type": "integer" - }, - "DefaultUid": { - "maximum": 65535, - "minimum": 0, - "type": "integer" - }, - "MountPath": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^/.*", - "type": "string" - } - }, - "type": "object" - }, - "JupyterLabAppImageConfig": { - "additionalProperties": false, - "properties": { - "ContainerConfig": { - "$ref": "#/definitions/ContainerConfig" - } - }, - "type": "object" - }, - "KernelGatewayImageConfig": { - "additionalProperties": false, - "properties": { - "FileSystemConfig": { - "$ref": "#/definitions/FileSystemConfig" - }, - "KernelSpecs": { - "items": { - "$ref": "#/definitions/KernelSpec" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "KernelSpecs" - ], - "type": "object" - }, - "KernelSpec": { - "additionalProperties": false, - "properties": { - "DisplayName": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - }, - "Name": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateAppImageConfig", - "sagemaker:DescribeAppImageConfig" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteAppImageConfig", - "sagemaker:DescribeAppImageConfig" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListAppImageConfigs" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeAppImageConfig" - ] - }, - "update": { - "permissions": [ - "sagemaker:UpdateAppImageConfig", - "sagemaker:DescribeAppImageConfig" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppImageConfigName" - ], - "properties": { - "AppImageConfigArn": { - "maxLength": 256, - "minLength": 1, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app-image-config/.*", - "type": "string" - }, - "AppImageConfigName": { - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "JupyterLabAppImageConfig": { - "$ref": "#/definitions/JupyterLabAppImageConfig" - }, - "KernelGatewayImageConfig": { - "$ref": "#/definitions/KernelGatewayImageConfig" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/AppImageConfigArn" - ], - "required": [ - "AppImageConfigName" - ], - "typeName": "AWS::SageMaker::AppImageConfig", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-domain.json deleted file mode 100644 index e57c036025..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,739 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "properties": { - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "SecurityGroups": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "DockerSettings": { - "additionalProperties": false, - "properties": { - "EnableDockerAccess": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "VpcOnlyTrustedAccounts": { - "insertionOrder": false, - "items": { - "maxLength": 12, - "pattern": "^[0-9]$", - "type": "string" - }, - "maxItems": 10, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "properties": { - "DockerSettings": { - "$ref": "#/definitions/DockerSettings" - }, - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:CreateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "efs:CreateFileSystem", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlainText" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp", - "sagemaker:DeleteDomain", - "sagemaker:DescribeDomain" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListDomains" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeDomain" - ] - }, - "update": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:UpdateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/DomainId" - ], - "properties": { - "AppNetworkAccessType": { - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings" - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings" - }, - "DomainArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnApplicationArn": { - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId", - "/properties/SingleSignOnApplicationArn" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-userprofile.json deleted file mode 100644 index d0f8848903..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,524 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateUserProfile", - "sagemaker:DescribeUserProfile", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteUserProfile", - "sagemaker:DescribeUserProfile" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListUserProfiles" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeUserProfile" - ] - }, - "update": { - "permissions": [ - "sagemaker:UpdateUserProfile", - "sagemaker:DescribeUserProfile", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/UserProfileName", - "/properties/DomainId" - ], - "properties": { - "DomainId": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "maxItems": 50, - "minItems": 0, - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/UserProfileArn" - ], - "required": [ - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::UserProfile", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py index 97b12b063d..e399f72f21 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py @@ -1107,7 +1107,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1355,6 +1354,7 @@ "aws-apigateway-usageplan.json", "aws-gamelift-gameservergroup.json", "aws-qldb-stream.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-connect-hoursofoperation.json", @@ -1412,6 +1412,7 @@ "aws-workspacesthinclient-environment.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-appintegrations-eventintegration.json", @@ -1536,7 +1537,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", @@ -1545,6 +1545,8 @@ "aws-stepfunctions-activity.json", "aws-omics-rungroup.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ses-receiptruleset.json", @@ -1660,7 +1662,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1700,6 +1701,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-greengrass-functiondefinition.json", @@ -1785,7 +1787,6 @@ "aws-customerprofiles-objecttype.json", "aws-lex-bot.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1950,6 +1951,7 @@ "aws-appstream-fleet.json", "aws-ec2-carriergateway.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -2061,7 +2063,6 @@ "aws-ec2-verifiedaccesstrustprovider.json", "aws-resourceexplorer2-view.json", "aws-certificatemanager-account.json", - "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", @@ -2107,7 +2108,6 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-oam-link.json", "aws-wafv2-loggingconfiguration.json", - "aws-quicksight-topic.json", "aws-ec2-keypair.json", "aws-guardduty-member.json", "aws-detective-memberinvitation.json", @@ -2117,6 +2117,7 @@ "aws-rds-dbcluster.json", "aws-iot-softwarepackageversion.json", "aws-redshift-endpointaccess.json", + "aws-ec2-transitgatewayroutetablepropagation.json", "aws-codeartifact-domain.json", "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-transitgatewayroutetablepropagation.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-transitgatewayroutetablepropagation.json deleted file mode 100644 index 1b2c5205a2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-transitgatewayroutetablepropagation.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayAttachmentId": { - "type": "string" - }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-location-apikey.json new file mode 100644 index 0000000000..3cfbf7cd5b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_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]+))$", + "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": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "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/eu_west_2/aws-quicksight-topic.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-quicksight-topic.json new file mode 100644 index 0000000000..66c003ee7f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-quicksight-topic.json @@ -0,0 +1,1015 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/TopicId" + ], + "definitions": { + "AggregationFunctionParameters": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "AuthorSpecifiedAggregation": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX", + "MEDIAN", + "SUM", + "AVERAGE", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "PERCENTILE" + ], + "type": "string" + }, + "CategoryFilterFunction": { + "enum": [ + "EXACT", + "CONTAINS" + ], + "type": "string" + }, + "CategoryFilterType": { + "enum": [ + "CUSTOM_FILTER", + "CUSTOM_FILTER_LIST", + "FILTER_LIST" + ], + "type": "string" + }, + "CellValueSynonym": { + "additionalProperties": false, + "properties": { + "CellValue": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Synonyms": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CollectiveConstant": { + "additionalProperties": false, + "properties": { + "ValueList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ColumnDataRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnOrderingType": { + "enum": [ + "GREATER_IS_BETTER", + "LESSER_IS_BETTER", + "SPECIFIED" + ], + "type": "string" + }, + "ComparativeOrder": { + "additionalProperties": false, + "properties": { + "SpecifedOrder": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TreatUndefinedSpecifiedValues": { + "$ref": "#/definitions/UndefinedSpecifiedValueType" + }, + "UseOrdering": { + "$ref": "#/definitions/ColumnOrderingType" + } + }, + "type": "object" + }, + "ConstantType": { + "enum": [ + "SINGULAR", + "RANGE", + "COLLECTIVE" + ], + "type": "string" + }, + "DataAggregation": { + "additionalProperties": false, + "properties": { + "DatasetRowDateGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + }, + "DefaultDateColumnName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DatasetMetadata": { + "additionalProperties": false, + "properties": { + "CalculatedFields": { + "items": { + "$ref": "#/definitions/TopicCalculatedField" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/TopicColumn" + }, + "type": "array" + }, + "DataAggregation": { + "$ref": "#/definitions/DataAggregation" + }, + "DatasetArn": { + "type": "string" + }, + "DatasetDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DatasetName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/TopicFilter" + }, + "type": "array" + }, + "NamedEntities": { + "items": { + "$ref": "#/definitions/TopicNamedEntity" + }, + "type": "array" + } + }, + "required": [ + "DatasetArn" + ], + "type": "object" + }, + "DefaultAggregation": { + "enum": [ + "SUM", + "MAX", + "MIN", + "COUNT", + "DISTINCT_COUNT", + "AVERAGE", + "MEDIAN", + "STDEV", + "STDEVP", + "VAR", + "VARP" + ], + "type": "string" + }, + "DefaultFormatting": { + "additionalProperties": false, + "properties": { + "DisplayFormat": { + "$ref": "#/definitions/DisplayFormat" + }, + "DisplayFormatOptions": { + "$ref": "#/definitions/DisplayFormatOptions" + } + }, + "type": "object" + }, + "DisplayFormat": { + "enum": [ + "AUTO", + "PERCENT", + "CURRENCY", + "NUMBER", + "DATE", + "STRING" + ], + "type": "string" + }, + "DisplayFormatOptions": { + "additionalProperties": false, + "properties": { + "BlankCellFormat": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CurrencySymbol": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DateFormat": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DecimalSeparator": { + "$ref": "#/definitions/TopicNumericSeparatorSymbol" + }, + "FractionDigits": { + "default": 0, + "type": "number" + }, + "GroupingSeparator": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "NegativeFormat": { + "$ref": "#/definitions/NegativeFormat" + }, + "Prefix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Suffix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "UnitScaler": { + "$ref": "#/definitions/NumberScale" + }, + "UseBlankCellFormat": { + "default": false, + "type": "boolean" + }, + "UseGrouping": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "FilterClass": { + "enum": [ + "ENFORCED_VALUE_FILTER", + "CONDITIONAL_VALUE_FILTER", + "NAMED_VALUE_FILTER" + ], + "type": "string" + }, + "NamedEntityAggType": { + "enum": [ + "SUM", + "MIN", + "MAX", + "COUNT", + "AVERAGE", + "DISTINCT_COUNT", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "PERCENTILE", + "MEDIAN", + "CUSTOM" + ], + "type": "string" + }, + "NamedEntityDefinition": { + "additionalProperties": false, + "properties": { + "FieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Metric": { + "$ref": "#/definitions/NamedEntityDefinitionMetric" + }, + "PropertyName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "PropertyRole": { + "$ref": "#/definitions/PropertyRole" + }, + "PropertyUsage": { + "$ref": "#/definitions/PropertyUsage" + } + }, + "type": "object" + }, + "NamedEntityDefinitionMetric": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedEntityAggType" + }, + "AggregationFunctionParameters": { + "$ref": "#/definitions/AggregationFunctionParameters" + } + }, + "type": "object" + }, + "NamedFilterAggType": { + "enum": [ + "NO_AGGREGATION", + "SUM", + "AVERAGE", + "COUNT", + "DISTINCT_COUNT", + "MAX", + "MEDIAN", + "MIN", + "STDEV", + "STDEVP", + "VAR", + "VARP" + ], + "type": "string" + }, + "NamedFilterType": { + "enum": [ + "CATEGORY_FILTER", + "NUMERIC_EQUALITY_FILTER", + "NUMERIC_RANGE_FILTER", + "DATE_RANGE_FILTER", + "RELATIVE_DATE_FILTER" + ], + "type": "string" + }, + "NegativeFormat": { + "additionalProperties": false, + "properties": { + "Prefix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Suffix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "PropertyRole": { + "enum": [ + "PRIMARY", + "ID" + ], + "type": "string" + }, + "PropertyUsage": { + "enum": [ + "INHERIT", + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "RangeConstant": { + "additionalProperties": false, + "properties": { + "Maximum": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Minimum": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "SemanticEntityType": { + "additionalProperties": false, + "properties": { + "SubTypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeParameters": { + "$ref": "#/definitions/TypeParameters" + } + }, + "type": "object" + }, + "SemanticType": { + "additionalProperties": false, + "properties": { + "FalseyCellValue": { + "type": "string" + }, + "FalseyCellValueSynonyms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubTypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TruthyCellValue": { + "type": "string" + }, + "TruthyCellValueSynonyms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeParameters": { + "$ref": "#/definitions/TypeParameters" + } + }, + "type": "object" + }, + "TopicCalculatedField": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/DefaultAggregation" + }, + "AllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "CalculatedFieldDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CalculatedFieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CalculatedFieldSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "CellValueSynonyms": { + "items": { + "$ref": "#/definitions/CellValueSynonym" + }, + "type": "array" + }, + "ColumnDataRole": { + "$ref": "#/definitions/ColumnDataRole" + }, + "ComparativeOrder": { + "$ref": "#/definitions/ComparativeOrder" + }, + "DefaultFormatting": { + "$ref": "#/definitions/DefaultFormatting" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IsIncludedInTopic": { + "default": false, + "type": "boolean" + }, + "NeverAggregateInFilter": { + "default": false, + "type": "boolean" + }, + "NonAdditive": { + "default": false, + "type": "boolean" + }, + "NotAllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "SemanticType": { + "$ref": "#/definitions/SemanticType" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "required": [ + "CalculatedFieldName", + "Expression" + ], + "type": "object" + }, + "TopicCategoryFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilterFunction": { + "$ref": "#/definitions/CategoryFilterFunction" + }, + "CategoryFilterType": { + "$ref": "#/definitions/CategoryFilterType" + }, + "Constant": { + "$ref": "#/definitions/TopicCategoryFilterConstant" + }, + "Inverse": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicCategoryFilterConstant": { + "additionalProperties": false, + "properties": { + "CollectiveConstant": { + "$ref": "#/definitions/CollectiveConstant" + }, + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "SingularConstant": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TopicColumn": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/DefaultAggregation" + }, + "AllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "CellValueSynonyms": { + "items": { + "$ref": "#/definitions/CellValueSynonym" + }, + "type": "array" + }, + "ColumnDataRole": { + "$ref": "#/definitions/ColumnDataRole" + }, + "ColumnDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnFriendlyName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "ComparativeOrder": { + "$ref": "#/definitions/ComparativeOrder" + }, + "DefaultFormatting": { + "$ref": "#/definitions/DefaultFormatting" + }, + "IsIncludedInTopic": { + "default": false, + "type": "boolean" + }, + "NeverAggregateInFilter": { + "default": false, + "type": "boolean" + }, + "NonAdditive": { + "default": false, + "type": "boolean" + }, + "NotAllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "SemanticType": { + "$ref": "#/definitions/SemanticType" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "required": [ + "ColumnName" + ], + "type": "object" + }, + "TopicDateRangeFilter": { + "additionalProperties": false, + "properties": { + "Constant": { + "$ref": "#/definitions/TopicRangeFilterConstant" + }, + "Inclusive": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicDetails": { + "additionalProperties": false, + "properties": { + "DataSets": { + "items": { + "$ref": "#/definitions/DatasetMetadata" + }, + "type": "array" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "UserExperienceVersion": { + "$ref": "#/definitions/TopicUserExperienceVersion" + } + }, + "type": "object" + }, + "TopicFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/TopicCategoryFilter" + }, + "DateRangeFilter": { + "$ref": "#/definitions/TopicDateRangeFilter" + }, + "FilterClass": { + "$ref": "#/definitions/FilterClass" + }, + "FilterDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FilterName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FilterSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "FilterType": { + "$ref": "#/definitions/NamedFilterType" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/TopicNumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/TopicNumericRangeFilter" + }, + "OperandFieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "RelativeDateFilter": { + "$ref": "#/definitions/TopicRelativeDateFilter" + } + }, + "required": [ + "FilterName", + "OperandFieldName" + ], + "type": "object" + }, + "TopicNamedEntity": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "$ref": "#/definitions/NamedEntityDefinition" + }, + "type": "array" + }, + "EntityDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EntityName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EntitySynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "SemanticEntityType": { + "$ref": "#/definitions/SemanticEntityType" + } + }, + "required": [ + "EntityName" + ], + "type": "object" + }, + "TopicNumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedFilterAggType" + }, + "Constant": { + "$ref": "#/definitions/TopicSingularFilterConstant" + } + }, + "type": "object" + }, + "TopicNumericRangeFilter": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedFilterAggType" + }, + "Constant": { + "$ref": "#/definitions/TopicRangeFilterConstant" + }, + "Inclusive": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicNumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT" + ], + "type": "string" + }, + "TopicRangeFilterConstant": { + "additionalProperties": false, + "properties": { + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "RangeConstant": { + "$ref": "#/definitions/RangeConstant" + } + }, + "type": "object" + }, + "TopicRelativeDateFilter": { + "additionalProperties": false, + "properties": { + "Constant": { + "$ref": "#/definitions/TopicSingularFilterConstant" + }, + "RelativeDateFilterFunction": { + "$ref": "#/definitions/TopicRelativeDateFilterFunction" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "type": "object" + }, + "TopicRelativeDateFilterFunction": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NEXT", + "NOW" + ], + "type": "string" + }, + "TopicSingularFilterConstant": { + "additionalProperties": false, + "properties": { + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "SingularConstant": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TopicTimeGranularity": { + "enum": [ + "SECOND", + "MINUTE", + "HOUR", + "DAY", + "WEEK", + "MONTH", + "QUARTER", + "YEAR" + ], + "type": "string" + }, + "TopicUserExperienceVersion": { + "enum": [ + "LEGACY", + "NEW_READER_EXPERIENCE" + ], + "type": "string" + }, + "TypeParameters": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "UndefinedSpecifiedValueType": { + "enum": [ + "LEAST", + "MOST" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "quicksight:CreateTopic", + "quicksight:PassDataSet", + "quicksight:DescribeTopicRefresh" + ] + }, + "delete": { + "permissions": [ + "quicksight:DeleteTopic" + ] + }, + "list": { + "permissions": [ + "quicksight:ListTopics" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeTopic" + ] + }, + "update": { + "permissions": [ + "quicksight:UpdateTopic", + "quicksight:PassDataSet", + "quicksight:DescribeTopicRefresh" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/TopicId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DataSets": { + "items": { + "$ref": "#/definitions/DatasetMetadata" + }, + "type": "array" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "TopicId": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9-_.\\\\+]*$", + "type": "string" + }, + "UserExperienceVersion": { + "$ref": "#/definitions/TopicUserExperienceVersion" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::QuickSight::Topic" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py index 9b86e89918..b1c5ddb378 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -915,7 +915,6 @@ "aws-opensearchserverless-vpcendpoint.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1102,6 +1101,7 @@ "aws-securityhub-hub.json", "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", @@ -1109,6 +1109,7 @@ "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", @@ -1130,9 +1131,11 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-s3-multiregionaccesspointpolicy.json", "aws-ses-emailidentity.json", @@ -1149,6 +1152,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1249,7 +1253,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", @@ -1258,6 +1261,8 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-opsworks-stack.json", @@ -1296,6 +1301,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1352,7 +1358,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-route53resolver-resolverqueryloggingconfig.json", @@ -1385,6 +1390,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1406,6 +1412,7 @@ "aws-organizations-resourcepolicy.json", "aws-lightsail-loadbalancer.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1454,7 +1461,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1587,6 +1593,7 @@ "aws-ec2-ipam.json", "aws-ec2-carriergateway.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1697,7 +1704,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-budgets-budget.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py index 08c60f0868..3d1b1f4cc2 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py @@ -634,9 +634,9 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", + "aws-elasticache-serverlesscache.json", "aws-datasync-locationobjectstorage.json", "aws-logs-deliverydestination.json", "aws-appsync-graphqlapi.json", @@ -744,11 +744,13 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", "aws-cloudfront-keygroup.json", @@ -761,6 +763,8 @@ "aws-certificatemanager-certificate.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-ses-emailidentity.json", "aws-cloudwatch-anomalydetector.json", @@ -771,6 +775,7 @@ "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -834,6 +839,7 @@ "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", "aws-omics-rungroup.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ec2-subnet.json", @@ -862,6 +868,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -891,7 +898,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-ec2-verifiedaccessendpoint.json", "aws-route53resolver-resolverqueryloggingconfig.json", @@ -912,6 +918,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-identitystore-groupmembership.json", @@ -927,6 +934,7 @@ "aws-organizations-resourcepolicy.json", "aws-omics-workflow.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-globalaccelerator-listener.json", "aws-s3outposts-bucket.json", @@ -949,7 +957,6 @@ "aws-secretsmanager-secret.json", "aws-appsync-domainnameapiassociation.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1030,6 +1037,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1103,7 +1111,6 @@ "aws-servicecatalogappregistry-attributegroup.json", "aws-omics-variantstore.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-sagemaker-image.json", "aws-cloud9-environmentec2.json", "aws-ec2-trafficmirrorfilter.json", diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-elasticache-serverlesscache.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-elasticache-serverlesscache.json deleted file mode 100644 index 745018a609..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-elasticache-serverlesscache.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerlessCacheName", - "/properties/Engine", - "/properties/MajorEngineVersion", - "/properties/KmsKeyId", - "/properties/SnapshotArnsToRestore", - "/properties/SubnetIds" - ], - "definitions": { - "CacheUsageLimits": { - "additionalProperties": false, - "properties": { - "DataStorage": { - "$ref": "#/definitions/DataStorage" - }, - "ECPUPerSecond": { - "$ref": "#/definitions/ECPUPerSecond" - } - }, - "type": "object" - }, - "DataStorage": { - "additionalProperties": false, - "properties": { - "Maximum": { - "type": "integer" - }, - "Unit": { - "enum": [ - "GB" - ], - "type": "string" - } - }, - "required": [ - "Maximum", - "Unit" - ], - "type": "object" - }, - "ECPUPerSecond": { - "additionalProperties": false, - "properties": { - "Maximum": { - "type": "integer" - } - }, - "required": [ - "Maximum" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "integer" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "elasticache:CreateServerlessCache", - "elasticache:DescribeServerlessCaches", - "elasticache:AddTagsToResource", - "elasticache:ListTagsForResource", - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "delete": { - "permissions": [ - "elasticache:DeleteServerlessCache", - "elasticache:DescribeServerlessCaches", - "elasticache:ListTagsForResource" - ] - }, - "list": { - "permissions": [ - "elasticache:DescribeServerlessCaches", - "elasticache:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "elasticache:DescribeServerlessCaches", - "elasticache:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "elasticache:ModifyServerlessCache", - "elasticache:DescribeServerlessCaches", - "elasticache:AddTagsToResource", - "elasticache:ListTagsForResource", - "elasticache:RemoveTagsFromResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ServerlessCacheName" - ], - "properties": { - "ARN": { - "type": "string" - }, - "CacheUsageLimits": { - "$ref": "#/definitions/CacheUsageLimits" - }, - "CreateTime": { - "type": "string" - }, - "DailySnapshotTime": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "FinalSnapshotName": { - "type": "string" - }, - "FullEngineVersion": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "MajorEngineVersion": { - "type": "string" - }, - "ReaderEndpoint": { - "$ref": "#/definitions/Endpoint" - }, - "SecurityGroupIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "ServerlessCacheName": { - "type": "string" - }, - "SnapshotArnsToRestore": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "SnapshotRetentionLimit": { - "type": "integer" - }, - "Status": { - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "UserGroupId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/FullEngineVersion", - "/properties/CreateTime", - "/properties/Status", - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/ReaderEndpoint/Address", - "/properties/ReaderEndpoint/Port", - "/properties/ARN" - ], - "required": [ - "ServerlessCacheName", - "Engine" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticache", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ElastiCache::ServerlessCache", - "writeOnlyProperties": [ - "/properties/SnapshotArnsToRestore", - "/properties/FinalSnapshotName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py index b062e3936f..6031321691 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py @@ -437,6 +437,7 @@ "AWS::Glue::Classifier", "AWS::SageMaker::ModelPackageGroup", "AWS::FMS::ResourceSet", + "AWS::RUM::AppMonitor", "AWS::EC2::VPCEndpointServicePermissions", "AWS::AppConfig::ExtensionAssociation", "AWS::IoT::ThingPrincipalAttachment", @@ -651,7 +652,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-elasticache-serverlesscache.json", @@ -776,12 +776,14 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-sagemaker-inferencecomponent.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", "aws-batch-schedulingpolicy.json", "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", @@ -795,6 +797,8 @@ "aws-certificatemanager-certificate.json", "aws-elasticache-user.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-mediatailor-channel.json", "aws-neptune-dbcluster.json", @@ -805,6 +809,7 @@ "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -877,6 +882,8 @@ "aws-servicecatalogappregistry-resourceassociation.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ec2-subnet.json", @@ -903,6 +910,7 @@ "aws-ce-anomalysubscription.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -938,7 +946,6 @@ "aws-ssm-association.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-config-configurationrecorder.json", @@ -962,6 +969,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-ec2-subnetcidrblock.json", "aws-eventschemas-schema.json", "aws-iot-accountauditconfiguration.json", @@ -976,6 +984,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-globalaccelerator-listener.json", "aws-redshift-clustersecuritygroup.json", @@ -1002,7 +1011,6 @@ "aws-appsync-domainnameapiassociation.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-glue-table.json", @@ -1010,6 +1018,7 @@ "aws-glue-classifier.json", "aws-sagemaker-modelpackagegroup.json", "aws-fms-resourceset.json", + "aws-rum-appmonitor.json", "aws-ec2-vpcendpointservicepermissions.json", "aws-appconfig-extensionassociation.json", "aws-networkfirewall-tlsinspectionconfiguration.json", @@ -1077,6 +1086,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1158,7 +1168,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", "aws-sagemaker-image.json", @@ -1176,6 +1185,7 @@ "aws-rds-dbcluster.json", "aws-iot-softwarepackageversion.json", "aws-redshift-endpointaccess.json", + "aws-ec2-transitgatewayroutetablepropagation.json", "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", "aws-emr-studio.json", diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroutetablepropagation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroutetablepropagation.json deleted file mode 100644 index 1b2c5205a2..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroutetablepropagation.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayAttachmentId": { - "type": "string" - }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py index 9fd1d76ee2..6ba8f5f85b 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -780,7 +780,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -935,6 +934,7 @@ "aws-ec2-localgatewayroute.json", "aws-securityhub-hub.json", "aws-logs-metricfilter.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", @@ -942,6 +942,7 @@ "aws-eventschemas-registry.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", @@ -960,20 +961,24 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", + "aws-transfer-certificate.json", "aws-apigateway-gatewayresponse.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-ses-emailidentity.json", "aws-neptune-dbcluster.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-alarm.json", "aws-ec2-clientvpnroute.json", + "aws-backup-backupplan.json", "aws-ses-vdmattributes.json", "aws-waf-ipset.json", "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -1057,7 +1062,6 @@ "aws-servicediscovery-httpnamespace.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", "aws-apigateway-documentationversion.json", @@ -1097,6 +1101,7 @@ "aws-ssm-document.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1143,7 +1148,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-fis-experimenttemplate.json", @@ -1172,6 +1176,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1192,6 +1197,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-neptune-dbclusterparametergroup.json", @@ -1233,7 +1239,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1341,6 +1346,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1439,7 +1445,6 @@ "aws-ec2-vpcendpoint.json", "aws-servicecatalogappregistry-attributegroup.json", "aws-msk-clusterpolicy.json", - "aws-fms-policy.json", "aws-dms-replicationsubnetgroup.json", "aws-cloudtrail-channel.json", "aws-elasticache-subnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-backup-backupplan.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-backup-backupplan.json deleted file mode 100644 index 0569e82c9c..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-backup-backupplan.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AdvancedBackupSettingResourceType": { - "additionalProperties": false, - "properties": { - "BackupOptions": { - "type": "object" - }, - "ResourceType": { - "type": "string" - } - }, - "required": [ - "BackupOptions", - "ResourceType" - ], - "type": "object" - }, - "BackupPlanResourceType": { - "additionalProperties": false, - "properties": { - "AdvancedBackupSettings": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/AdvancedBackupSettingResourceType" - }, - "type": "array", - "uniqueItems": false - }, - "BackupPlanName": { - "type": "string" - }, - "BackupPlanRule": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/BackupRuleResourceType" - }, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "BackupPlanName", - "BackupPlanRule" - ], - "type": "object" - }, - "BackupRuleResourceType": { - "additionalProperties": false, - "properties": { - "CompletionWindowMinutes": { - "type": "number" - }, - "CopyActions": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CopyActionResourceType" - }, - "type": "array", - "uniqueItems": false - }, - "EnableContinuousBackup": { - "type": "boolean" - }, - "Lifecycle": { - "$ref": "#/definitions/LifecycleResourceType" - }, - "RecoveryPointTags": { - "additionalProperties": false, - "patternProperties": { - "^.{1,128}$": { - "type": "string" - } - }, - "type": "object" - }, - "RuleName": { - "type": "string" - }, - "ScheduleExpression": { - "type": "string" - }, - "ScheduleExpressionTimezone": { - "type": "string" - }, - "StartWindowMinutes": { - "type": "number" - }, - "TargetBackupVault": { - "type": "string" - } - }, - "required": [ - "TargetBackupVault", - "RuleName" - ], - "type": "object" - }, - "CopyActionResourceType": { - "additionalProperties": false, - "properties": { - "DestinationBackupVaultArn": { - "type": "string" - }, - "Lifecycle": { - "$ref": "#/definitions/LifecycleResourceType" - } - }, - "required": [ - "DestinationBackupVaultArn" - ], - "type": "object" - }, - "LifecycleResourceType": { - "additionalProperties": false, - "if": { - "properties": { - "DeleteAfterDays": { - "type": "number" - }, - "MoveToColdStorageAfterDays": { - "type": "number" - } - }, - "required": [ - "DeleteAfterDays", - "MoveToColdStorageAfterDays" - ] - }, - "properties": { - "DeleteAfterDays": { - "type": "number" - }, - "MoveToColdStorageAfterDays": { - "type": "number" - } - }, - "then": { - "cfnLint": "AWS::Backup::BackupPlan/Properties/BackupPlanResourceType/BackupRuleResourceType/Lifecycle" - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "backup:GetBackupPlan", - "backup:TagResource", - "backup:CreateBackupPlan" - ] - }, - "delete": { - "permissions": [ - "backup:GetBackupPlan", - "backup:DeleteBackupPlan" - ] - }, - "list": { - "permissions": [ - "backup:ListBackupPlans" - ] - }, - "read": { - "permissions": [ - "backup:GetBackupPlan", - "backup:ListTags" - ] - }, - "update": { - "permissions": [ - "backup:UpdateBackupPlan", - "backup:ListTags", - "backup:TagResource", - "backup:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/BackupPlanId" - ], - "properties": { - "BackupPlan": { - "$ref": "#/definitions/BackupPlanResourceType" - }, - "BackupPlanArn": { - "type": "string" - }, - "BackupPlanId": { - "type": "string" - }, - "BackupPlanTags": { - "additionalProperties": false, - "patternProperties": { - "^.{1,128}$": { - "type": "string" - } - }, - "type": "object" - }, - "VersionId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/BackupPlanId", - "/properties/VersionId", - "/properties/BackupPlanArn" - ], - "required": [ - "BackupPlan" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/BackupPlanTags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Backup::BackupPlan" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-fms-policy.json new file mode 100644 index 0000000000..010c4a6a67 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-fms-policy.json @@ -0,0 +1,337 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^([0-9]*)$", + "type": "string" + }, + "Base62Id": { + "maxLength": 22, + "minLength": 22, + "pattern": "^[a-z0-9A-Z]{22}$", + "type": "string" + }, + "FirewallDeploymentModel": { + "enum": [ + "DISTRIBUTED", + "CENTRALIZED" + ], + "type": "string" + }, + "IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccountId" + }, + "type": "array" + }, + "ORGUNIT": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OrganizationalUnitId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ManagedServiceData": { + "maxLength": 8192, + "minLength": 1, + "type": "string" + }, + "NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "OrganizationalUnitId": { + "maxLength": 68, + "minLength": 16, + "pattern": "^(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$", + "type": "string" + }, + "PolicyOption": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "NetworkFirewallPolicy" + ] + }, + { + "required": [ + "ThirdPartyFirewallPolicy" + ] + } + ], + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "pattern": "^([^\\s]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "PolicyType": { + "enum": [ + "WAF", + "WAFV2", + "SHIELD_ADVANCED", + "SECURITY_GROUPS_COMMON", + "SECURITY_GROUPS_CONTENT_AUDIT", + "SECURITY_GROUPS_USAGE_AUDIT", + "NETWORK_FIREWALL", + "THIRD_PARTY_FIREWALL", + "DNS_FIREWALL", + "IMPORT_NETWORK_FIREWALL" + ], + "type": "string" + }, + "ResourceArn": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ResourceType": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([^\\s]*)$", + "type": "string" + }, + "SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "$ref": "#/definitions/ManagedServiceData" + }, + "PolicyOption": { + "$ref": "#/definitions/PolicyOption" + }, + "Type": { + "$ref": "#/definitions/PolicyType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "$ref": "#/definitions/FirewallDeploymentModel" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "fms:PutPolicy", + "fms:TagResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "fms:DeletePolicy" + ] + }, + "list": { + "permissions": [ + "fms:ListPolicies", + "fms:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "fms:GetPolicy", + "fms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "fms:PutPolicy", + "fms:GetPolicy", + "fms:TagResource", + "fms:UntagResource", + "fms:ListTagsForResource", + "waf-regional:ListRuleGroups", + "wafv2:CheckCapacity", + "wafv2:ListRuleGroups", + "wafv2:ListAvailableManagedRuleGroups", + "wafv2:ListAvailableManagedRuleGroupVersions", + "network-firewall:DescribeRuleGroup", + "network-firewall:DescribeRuleGroupMetadata", + "route53resolver:ListFirewallRuleGroups", + "ec2:DescribeAvailabilityZones", + "s3:PutBucketPolicy", + "s3:GetBucketPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9A-Z-]{36}$", + "type": "string" + }, + "IncludeMap": { + "$ref": "#/definitions/IEMap" + }, + "PolicyDescription": { + "maxLength": 256, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "PolicyName": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-zA-Z0-9_.:/=+\\-@\\s]+)$", + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceSetIds": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Base62Id" + }, + "type": "array", + "uniqueItems": true + }, + "ResourceTags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceTag" + }, + "maxItems": 8, + "type": "array" + }, + "ResourceType": { + "$ref": "#/definitions/ResourceType" + }, + "ResourceTypeList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ResourceType" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/SecurityServicePolicyData" + }, + "Tags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PolicyTag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "SecurityServicePolicyData" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", + "typeName": "AWS::FMS::Policy", + "writeOnlyProperties": [ + "/properties/DeleteAllPolicyResources" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py index af3099d439..acf975ba3c 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -944,7 +944,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-servicecatalog-portfolioprincipalassociation.json", @@ -1156,6 +1155,7 @@ "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", "aws-gamelift-gameservergroup.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", @@ -1201,6 +1201,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1304,7 +1305,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-apigatewayv2-vpclink.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", @@ -1313,6 +1313,8 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-opsworks-stack.json", @@ -1405,7 +1407,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1440,6 +1441,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1510,7 +1512,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1652,6 +1653,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1750,7 +1752,6 @@ "aws-ec2-verifiedaccesstrustprovider.json", "aws-resourceexplorer2-view.json", "aws-certificatemanager-account.json", - "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-location-apikey.json new file mode 100644 index 0000000000..3cfbf7cd5b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_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]+))$", + "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": { + "^[a-zA-Z+-=._:/]+$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "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/sa_east_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-globaltable.json index 2ae3432be1..1ec12c9485 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-globaltable.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-globaltable.json @@ -107,6 +107,9 @@ "Projection": { "$ref": "#/definitions/Projection" }, + "WriteOnDemandThroughputSettings": { + "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" } @@ -248,6 +251,16 @@ }, "type": "object" }, + "ReadOnDemandThroughputSettings": { + "additionalProperties": false, + "properties": { + "MaxReadRequestUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, "ReadProvisionedThroughputSettings": { "additionalProperties": false, "properties": { @@ -272,6 +285,9 @@ "minLength": 3, "type": "string" }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" + }, "ReadProvisionedThroughputSettings": { "$ref": "#/definitions/ReadProvisionedThroughputSettings" } @@ -336,6 +352,9 @@ "PointInTimeRecoverySpecification": { "$ref": "#/definitions/PointInTimeRecoverySpecification" }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" + }, "ReadProvisionedThroughputSettings": { "$ref": "#/definitions/ReadProvisionedThroughputSettings" }, @@ -474,6 +493,16 @@ ], "type": "object" }, + "WriteOnDemandThroughputSettings": { + "additionalProperties": false, + "properties": { + "MaxWriteRequestUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, "WriteProvisionedThroughputSettings": { "additionalProperties": false, "properties": { @@ -673,6 +702,9 @@ "TimeToLiveSpecification": { "$ref": "#/definitions/TimeToLiveSpecification" }, + "WriteOnDemandThroughputSettings": { + "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json index b883ca8f0e..c1c4996105 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-dynamodb-table.json @@ -120,6 +120,9 @@ "maxItems": 2, "minItems": 1 }, + "OnDemandThroughput": { + "$ref": "#/definitions/OnDemandThroughput" + }, "Projection": { "$ref": "#/definitions/Projection" }, @@ -263,6 +266,20 @@ ], "type": "object" }, + "OnDemandThroughput": { + "additionalProperties": false, + "properties": { + "MaxReadRequestUnits": { + "minimum": 1, + "type": "integer" + }, + "MaxWriteRequestUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, "PointInTimeRecoverySpecification": { "additionalProperties": false, "properties": { @@ -594,6 +611,9 @@ "type": "array", "uniqueItems": false }, + "OnDemandThroughput": { + "$ref": "#/definitions/OnDemandThroughput" + }, "PointInTimeRecoverySpecification": { "$ref": "#/definitions/PointInTimeRecoverySpecification" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-instance.json index 6c49e5c0b3..b64c2d65df 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-instance.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-instance.json @@ -310,6 +310,18 @@ ], "type": "object" }, + "State": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "Tag": { "additionalProperties": false, "properties": { @@ -668,6 +680,10 @@ "type": "array", "uniqueItems": false }, + "State": { + "$ref": "#/definitions/State", + "type": "object" + }, "SubnetId": { "type": "string" }, @@ -708,7 +724,8 @@ "/properties/PublicDnsName", "/properties/PublicIp", "/properties/PrivateDnsName", - "/properties/VpcId" + "/properties/VpcId", + "/properties/State" ], "requiredXor": [ "ImageId", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-policy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-policy.json index 010c4a6a67..8456d02fd6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-policy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fms-policy.json @@ -45,6 +45,132 @@ "minLength": 1, "type": "string" }, + "NetworkAclCommonPolicy": { + "additionalProperties": false, + "properties": { + "NetworkAclEntrySet": { + "$ref": "#/definitions/NetworkAclEntrySet" + } + }, + "required": [ + "NetworkAclEntrySet" + ], + "type": "object" + }, + "NetworkAclEntry": { + "additionalProperties": false, + "properties": { + "CidrBlock": { + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "IcmpTypeCode": { + "additionalProperties": false, + "properties": { + "Code": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "Type": { + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "Code", + "Type" + ], + "type": "object" + }, + "Ipv6CidrBlock": { + "pattern": "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(/(1[0-2]|[0-9]))?$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "To": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "From", + "To" + ], + "type": "object" + }, + "Protocol": { + "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + "type": "string" + }, + "RuleAction": { + "enum": [ + "allow", + "deny" + ], + "type": "string" + } + }, + "required": [ + "Egress", + "Protocol", + "RuleAction" + ], + "type": "object" + }, + "NetworkAclEntryList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NetworkAclEntry" + }, + "type": "array" + }, + "NetworkAclEntrySet": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "FirstEntries" + ] + }, + { + "required": [ + "LastEntries" + ] + } + ], + "properties": { + "FirstEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + }, + "ForceRemediateForFirstEntries": { + "type": "boolean" + }, + "ForceRemediateForLastEntries": { + "type": "boolean" + }, + "LastEntries": { + "$ref": "#/definitions/NetworkAclEntryList" + } + }, + "required": [ + "ForceRemediateForFirstEntries", + "ForceRemediateForLastEntries" + ], + "type": "object" + }, "NetworkFirewallPolicy": { "additionalProperties": false, "properties": { @@ -75,9 +201,17 @@ "required": [ "ThirdPartyFirewallPolicy" ] + }, + { + "required": [ + "NetworkAclCommonPolicy" + ] } ], "properties": { + "NetworkAclCommonPolicy": { + "$ref": "#/definitions/NetworkAclCommonPolicy" + }, "NetworkFirewallPolicy": { "$ref": "#/definitions/NetworkFirewallPolicy" }, @@ -119,7 +253,8 @@ "NETWORK_FIREWALL", "THIRD_PARTY_FIREWALL", "DNS_FIREWALL", - "IMPORT_NETWORK_FIREWALL" + "IMPORT_NETWORK_FIREWALL", + "NETWORK_ACL_COMMON" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-apikey.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-apikey.json index 3cfbf7cd5b..deb35907f8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-location-apikey.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-location-apikey.json @@ -34,7 +34,7 @@ "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]+))$", + "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):::((provider[\\/][*-._\\w]+))$)", "type": "string" }, "maxItems": 5, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-topic.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-topic.json index 66c003ee7f..161b93f9ac 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-topic.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-quicksight-topic.json @@ -526,6 +526,9 @@ "DefaultFormatting": { "$ref": "#/definitions/DefaultFormatting" }, + "DisableIndexing": { + "type": "boolean" + }, "Expression": { "maxLength": 4096, "minLength": 1, @@ -648,6 +651,9 @@ "DefaultFormatting": { "$ref": "#/definitions/DefaultFormatting" }, + "DisableIndexing": { + "type": "boolean" + }, "IsIncludedInTopic": { "default": false, "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-route53-hostedzone.json index 4690c89e62..7f24a39d31 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-route53-hostedzone.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-route53-hostedzone.json @@ -36,6 +36,10 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Logs::LogGroup" + }, "type": "string" } }, @@ -48,6 +52,10 @@ "additionalProperties": false, "properties": { "VPCId": { + "relationshipRef": { + "propertyPath": "/properties/VpcId", + "typeName": "AWS::EC2::VPC" + }, "type": "string" }, "VPCRegion": { diff --git a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py index efb0cbd1d4..44d672f408 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py @@ -1116,7 +1116,6 @@ "aws-opensearchserverless-vpcendpoint.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1375,6 +1374,7 @@ "aws-gamelift-gameservergroup.json", "aws-robomaker-robotapplication.json", "aws-qldb-stream.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", @@ -1431,6 +1431,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-mediatailor-livesource.json", "aws-ssm-maintenancewindow.json", @@ -1549,7 +1550,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", @@ -1558,6 +1558,7 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", @@ -1673,7 +1674,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-apprunner-vpcconnector.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1712,6 +1712,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-greengrass-functiondefinition.json", @@ -1795,7 +1796,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-evidently-project.json", @@ -1965,6 +1965,7 @@ "aws-appstream-fleet.json", "aws-ec2-carriergateway.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -2130,7 +2131,6 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-oam-link.json", "aws-wafv2-loggingconfiguration.json", - "aws-quicksight-topic.json", "aws-deadline-farm.json", "aws-ec2-keypair.json", "aws-guardduty-member.json", @@ -2141,6 +2141,7 @@ "aws-rds-dbcluster.json", "aws-iot-softwarepackageversion.json", "aws-redshift-endpointaccess.json", + "aws-ec2-transitgatewayroutetablepropagation.json", "aws-codeartifact-domain.json", "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthority.json deleted file mode 100644 index ecdb17a904..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-transitgatewayroutetablepropagation.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-transitgatewayroutetablepropagation.json deleted file mode 100644 index 1b2c5205a2..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-transitgatewayroutetablepropagation.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayAttachmentId": { - "type": "string" - }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-quicksight-topic.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-quicksight-topic.json new file mode 100644 index 0000000000..66c003ee7f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-quicksight-topic.json @@ -0,0 +1,1015 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/TopicId" + ], + "definitions": { + "AggregationFunctionParameters": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "AuthorSpecifiedAggregation": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX", + "MEDIAN", + "SUM", + "AVERAGE", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "PERCENTILE" + ], + "type": "string" + }, + "CategoryFilterFunction": { + "enum": [ + "EXACT", + "CONTAINS" + ], + "type": "string" + }, + "CategoryFilterType": { + "enum": [ + "CUSTOM_FILTER", + "CUSTOM_FILTER_LIST", + "FILTER_LIST" + ], + "type": "string" + }, + "CellValueSynonym": { + "additionalProperties": false, + "properties": { + "CellValue": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Synonyms": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CollectiveConstant": { + "additionalProperties": false, + "properties": { + "ValueList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ColumnDataRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnOrderingType": { + "enum": [ + "GREATER_IS_BETTER", + "LESSER_IS_BETTER", + "SPECIFIED" + ], + "type": "string" + }, + "ComparativeOrder": { + "additionalProperties": false, + "properties": { + "SpecifedOrder": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TreatUndefinedSpecifiedValues": { + "$ref": "#/definitions/UndefinedSpecifiedValueType" + }, + "UseOrdering": { + "$ref": "#/definitions/ColumnOrderingType" + } + }, + "type": "object" + }, + "ConstantType": { + "enum": [ + "SINGULAR", + "RANGE", + "COLLECTIVE" + ], + "type": "string" + }, + "DataAggregation": { + "additionalProperties": false, + "properties": { + "DatasetRowDateGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + }, + "DefaultDateColumnName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DatasetMetadata": { + "additionalProperties": false, + "properties": { + "CalculatedFields": { + "items": { + "$ref": "#/definitions/TopicCalculatedField" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/TopicColumn" + }, + "type": "array" + }, + "DataAggregation": { + "$ref": "#/definitions/DataAggregation" + }, + "DatasetArn": { + "type": "string" + }, + "DatasetDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DatasetName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/TopicFilter" + }, + "type": "array" + }, + "NamedEntities": { + "items": { + "$ref": "#/definitions/TopicNamedEntity" + }, + "type": "array" + } + }, + "required": [ + "DatasetArn" + ], + "type": "object" + }, + "DefaultAggregation": { + "enum": [ + "SUM", + "MAX", + "MIN", + "COUNT", + "DISTINCT_COUNT", + "AVERAGE", + "MEDIAN", + "STDEV", + "STDEVP", + "VAR", + "VARP" + ], + "type": "string" + }, + "DefaultFormatting": { + "additionalProperties": false, + "properties": { + "DisplayFormat": { + "$ref": "#/definitions/DisplayFormat" + }, + "DisplayFormatOptions": { + "$ref": "#/definitions/DisplayFormatOptions" + } + }, + "type": "object" + }, + "DisplayFormat": { + "enum": [ + "AUTO", + "PERCENT", + "CURRENCY", + "NUMBER", + "DATE", + "STRING" + ], + "type": "string" + }, + "DisplayFormatOptions": { + "additionalProperties": false, + "properties": { + "BlankCellFormat": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CurrencySymbol": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DateFormat": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DecimalSeparator": { + "$ref": "#/definitions/TopicNumericSeparatorSymbol" + }, + "FractionDigits": { + "default": 0, + "type": "number" + }, + "GroupingSeparator": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "NegativeFormat": { + "$ref": "#/definitions/NegativeFormat" + }, + "Prefix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Suffix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "UnitScaler": { + "$ref": "#/definitions/NumberScale" + }, + "UseBlankCellFormat": { + "default": false, + "type": "boolean" + }, + "UseGrouping": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "FilterClass": { + "enum": [ + "ENFORCED_VALUE_FILTER", + "CONDITIONAL_VALUE_FILTER", + "NAMED_VALUE_FILTER" + ], + "type": "string" + }, + "NamedEntityAggType": { + "enum": [ + "SUM", + "MIN", + "MAX", + "COUNT", + "AVERAGE", + "DISTINCT_COUNT", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "PERCENTILE", + "MEDIAN", + "CUSTOM" + ], + "type": "string" + }, + "NamedEntityDefinition": { + "additionalProperties": false, + "properties": { + "FieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Metric": { + "$ref": "#/definitions/NamedEntityDefinitionMetric" + }, + "PropertyName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "PropertyRole": { + "$ref": "#/definitions/PropertyRole" + }, + "PropertyUsage": { + "$ref": "#/definitions/PropertyUsage" + } + }, + "type": "object" + }, + "NamedEntityDefinitionMetric": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedEntityAggType" + }, + "AggregationFunctionParameters": { + "$ref": "#/definitions/AggregationFunctionParameters" + } + }, + "type": "object" + }, + "NamedFilterAggType": { + "enum": [ + "NO_AGGREGATION", + "SUM", + "AVERAGE", + "COUNT", + "DISTINCT_COUNT", + "MAX", + "MEDIAN", + "MIN", + "STDEV", + "STDEVP", + "VAR", + "VARP" + ], + "type": "string" + }, + "NamedFilterType": { + "enum": [ + "CATEGORY_FILTER", + "NUMERIC_EQUALITY_FILTER", + "NUMERIC_RANGE_FILTER", + "DATE_RANGE_FILTER", + "RELATIVE_DATE_FILTER" + ], + "type": "string" + }, + "NegativeFormat": { + "additionalProperties": false, + "properties": { + "Prefix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Suffix": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "PropertyRole": { + "enum": [ + "PRIMARY", + "ID" + ], + "type": "string" + }, + "PropertyUsage": { + "enum": [ + "INHERIT", + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "RangeConstant": { + "additionalProperties": false, + "properties": { + "Maximum": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Minimum": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "SemanticEntityType": { + "additionalProperties": false, + "properties": { + "SubTypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeParameters": { + "$ref": "#/definitions/TypeParameters" + } + }, + "type": "object" + }, + "SemanticType": { + "additionalProperties": false, + "properties": { + "FalseyCellValue": { + "type": "string" + }, + "FalseyCellValueSynonyms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubTypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TruthyCellValue": { + "type": "string" + }, + "TruthyCellValueSynonyms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TypeName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "TypeParameters": { + "$ref": "#/definitions/TypeParameters" + } + }, + "type": "object" + }, + "TopicCalculatedField": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/DefaultAggregation" + }, + "AllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "CalculatedFieldDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CalculatedFieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "CalculatedFieldSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "CellValueSynonyms": { + "items": { + "$ref": "#/definitions/CellValueSynonym" + }, + "type": "array" + }, + "ColumnDataRole": { + "$ref": "#/definitions/ColumnDataRole" + }, + "ComparativeOrder": { + "$ref": "#/definitions/ComparativeOrder" + }, + "DefaultFormatting": { + "$ref": "#/definitions/DefaultFormatting" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IsIncludedInTopic": { + "default": false, + "type": "boolean" + }, + "NeverAggregateInFilter": { + "default": false, + "type": "boolean" + }, + "NonAdditive": { + "default": false, + "type": "boolean" + }, + "NotAllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "SemanticType": { + "$ref": "#/definitions/SemanticType" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "required": [ + "CalculatedFieldName", + "Expression" + ], + "type": "object" + }, + "TopicCategoryFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilterFunction": { + "$ref": "#/definitions/CategoryFilterFunction" + }, + "CategoryFilterType": { + "$ref": "#/definitions/CategoryFilterType" + }, + "Constant": { + "$ref": "#/definitions/TopicCategoryFilterConstant" + }, + "Inverse": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicCategoryFilterConstant": { + "additionalProperties": false, + "properties": { + "CollectiveConstant": { + "$ref": "#/definitions/CollectiveConstant" + }, + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "SingularConstant": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TopicColumn": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/DefaultAggregation" + }, + "AllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "CellValueSynonyms": { + "items": { + "$ref": "#/definitions/CellValueSynonym" + }, + "type": "array" + }, + "ColumnDataRole": { + "$ref": "#/definitions/ColumnDataRole" + }, + "ColumnDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnFriendlyName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "ColumnSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "ComparativeOrder": { + "$ref": "#/definitions/ComparativeOrder" + }, + "DefaultFormatting": { + "$ref": "#/definitions/DefaultFormatting" + }, + "IsIncludedInTopic": { + "default": false, + "type": "boolean" + }, + "NeverAggregateInFilter": { + "default": false, + "type": "boolean" + }, + "NonAdditive": { + "default": false, + "type": "boolean" + }, + "NotAllowedAggregations": { + "items": { + "$ref": "#/definitions/AuthorSpecifiedAggregation" + }, + "type": "array" + }, + "SemanticType": { + "$ref": "#/definitions/SemanticType" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "required": [ + "ColumnName" + ], + "type": "object" + }, + "TopicDateRangeFilter": { + "additionalProperties": false, + "properties": { + "Constant": { + "$ref": "#/definitions/TopicRangeFilterConstant" + }, + "Inclusive": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicDetails": { + "additionalProperties": false, + "properties": { + "DataSets": { + "items": { + "$ref": "#/definitions/DatasetMetadata" + }, + "type": "array" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "UserExperienceVersion": { + "$ref": "#/definitions/TopicUserExperienceVersion" + } + }, + "type": "object" + }, + "TopicFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/TopicCategoryFilter" + }, + "DateRangeFilter": { + "$ref": "#/definitions/TopicDateRangeFilter" + }, + "FilterClass": { + "$ref": "#/definitions/FilterClass" + }, + "FilterDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FilterName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FilterSynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "FilterType": { + "$ref": "#/definitions/NamedFilterType" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/TopicNumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/TopicNumericRangeFilter" + }, + "OperandFieldName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "RelativeDateFilter": { + "$ref": "#/definitions/TopicRelativeDateFilter" + } + }, + "required": [ + "FilterName", + "OperandFieldName" + ], + "type": "object" + }, + "TopicNamedEntity": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "$ref": "#/definitions/NamedEntityDefinition" + }, + "type": "array" + }, + "EntityDescription": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EntityName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EntitySynonyms": { + "items": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "type": "array" + }, + "SemanticEntityType": { + "$ref": "#/definitions/SemanticEntityType" + } + }, + "required": [ + "EntityName" + ], + "type": "object" + }, + "TopicNumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedFilterAggType" + }, + "Constant": { + "$ref": "#/definitions/TopicSingularFilterConstant" + } + }, + "type": "object" + }, + "TopicNumericRangeFilter": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/NamedFilterAggType" + }, + "Constant": { + "$ref": "#/definitions/TopicRangeFilterConstant" + }, + "Inclusive": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "TopicNumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT" + ], + "type": "string" + }, + "TopicRangeFilterConstant": { + "additionalProperties": false, + "properties": { + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "RangeConstant": { + "$ref": "#/definitions/RangeConstant" + } + }, + "type": "object" + }, + "TopicRelativeDateFilter": { + "additionalProperties": false, + "properties": { + "Constant": { + "$ref": "#/definitions/TopicSingularFilterConstant" + }, + "RelativeDateFilterFunction": { + "$ref": "#/definitions/TopicRelativeDateFilterFunction" + }, + "TimeGranularity": { + "$ref": "#/definitions/TopicTimeGranularity" + } + }, + "type": "object" + }, + "TopicRelativeDateFilterFunction": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NEXT", + "NOW" + ], + "type": "string" + }, + "TopicSingularFilterConstant": { + "additionalProperties": false, + "properties": { + "ConstantType": { + "$ref": "#/definitions/ConstantType" + }, + "SingularConstant": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TopicTimeGranularity": { + "enum": [ + "SECOND", + "MINUTE", + "HOUR", + "DAY", + "WEEK", + "MONTH", + "QUARTER", + "YEAR" + ], + "type": "string" + }, + "TopicUserExperienceVersion": { + "enum": [ + "LEGACY", + "NEW_READER_EXPERIENCE" + ], + "type": "string" + }, + "TypeParameters": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "UndefinedSpecifiedValueType": { + "enum": [ + "LEAST", + "MOST" + ], + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "quicksight:CreateTopic", + "quicksight:PassDataSet", + "quicksight:DescribeTopicRefresh" + ] + }, + "delete": { + "permissions": [ + "quicksight:DeleteTopic" + ] + }, + "list": { + "permissions": [ + "quicksight:ListTopics" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeTopic" + ] + }, + "update": { + "permissions": [ + "quicksight:UpdateTopic", + "quicksight:PassDataSet", + "quicksight:DescribeTopicRefresh" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/TopicId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "DataSets": { + "items": { + "$ref": "#/definitions/DatasetMetadata" + }, + "type": "array" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "TopicId": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9-_.\\\\+]*$", + "type": "string" + }, + "UserExperienceVersion": { + "$ref": "#/definitions/TopicUserExperienceVersion" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::QuickSight::Topic" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py index 895bef07c5..df526bc025 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py @@ -22,6 +22,7 @@ "AWS::EMR::SecurityConfiguration", "AWS::DataSync::LocationFSxLustre", "AWS::Config::OrganizationConformancePack", + "AWS::RolesAnywhere::CRL", "AWS::Config::ConformancePack", "AWS::NetworkManager::GlobalNetwork", "AWS::ImageBuilder::ImagePipeline", @@ -214,6 +215,7 @@ "AWS::S3::AccessGrantsLocation", "AWS::EC2::TrafficMirrorFilterRule", "AWS::Kinesis::Stream", + "AWS::RolesAnywhere::TrustAnchor", "AWS::Route53Resolver::ResolverDNSSECConfig", "AWS::CloudFormation::ModuleDefaultVersion", "AWS::IAM::ServiceLinkedRole", @@ -571,6 +573,7 @@ "AWS::AutoScaling::LifecycleHook", "AWS::ElasticLoadBalancingV2::ListenerRule", "AWS::Transfer::User", + "AWS::RolesAnywhere::Profile", "AWS::AppStream::AppBlockBuilder", "AWS::EC2::TransitGatewayAttachment", "AWS::DMS::Certificate", @@ -646,7 +649,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-datasync-locationobjectstorage.json", "aws-appstream-directoryconfig.json", "aws-waf-sizeconstraintset.json", @@ -654,6 +656,7 @@ "aws-controltower-enabledcontrol.json", "aws-datasync-locationfsxlustre.json", "aws-config-organizationconformancepack.json", + "aws-rolesanywhere-crl.json", "aws-config-conformancepack.json", "aws-networkmanager-globalnetwork.json", "aws-imagebuilder-imagepipeline.json", @@ -741,10 +744,12 @@ "aws-securityhub-hub.json", "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", + "aws-transfer-profile.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-batch-schedulingpolicy.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", @@ -760,7 +765,9 @@ "aws-apigateway-usageplankey.json", "aws-greengrass-resourcedefinition.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-ses-emailidentity.json", "aws-appstream-appblock.json", @@ -774,6 +781,7 @@ "aws-servicediscovery-instance.json", "aws-ec2-placementgroup.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -797,6 +805,7 @@ "aws-s3-accessgrantslocation.json", "aws-ec2-trafficmirrorfilterrule.json", "aws-kinesis-stream.json", + "aws-rolesanywhere-trustanchor.json", "aws-route53resolver-resolverdnssecconfig.json", "aws-cloudformation-moduledefaultversion.json", "aws-codedeploy-application.json", @@ -859,6 +868,7 @@ "aws-networkmanager-customergatewayassociation.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -912,6 +922,7 @@ "aws-wafv2-ipset.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-config-configurationaggregator.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-greengrass-groupversion.json", "aws-iot-accountauditconfiguration.json", @@ -924,6 +935,7 @@ "aws-cloudwatch-dashboard.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-glue-schemaversion.json", "aws-cassandra-keyspace.json", @@ -943,7 +955,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1023,6 +1034,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1077,6 +1089,7 @@ "aws-licensemanager-grant.json", "aws-elasticloadbalancingv2-listenerrule.json", "aws-transfer-user.json", + "aws-rolesanywhere-profile.json", "aws-appstream-appblockbuilder.json", "aws-dms-certificate.json", "aws-neptune-dbsubnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py index 830ef724a0..7b435ad9e9 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py @@ -25,6 +25,7 @@ "AWS::DataSync::LocationFSxLustre", "AWS::Config::OrganizationConformancePack", "AWS::SageMaker::Project", + "AWS::RolesAnywhere::CRL", "AWS::Config::ConformancePack", "AWS::NetworkManager::GlobalNetwork", "AWS::ImageBuilder::ImagePipeline", @@ -259,6 +260,7 @@ "AWS::S3::AccessGrantsLocation", "AWS::EC2::TrafficMirrorFilterRule", "AWS::Kinesis::Stream", + "AWS::RolesAnywhere::TrustAnchor", "AWS::Pinpoint::APNSSandboxChannel", "AWS::Cognito::UserPoolGroup", "AWS::Route53Resolver::ResolverDNSSECConfig", @@ -676,6 +678,7 @@ "AWS::AutoScaling::LifecycleHook", "AWS::ElasticLoadBalancingV2::ListenerRule", "AWS::Transfer::User", + "AWS::RolesAnywhere::Profile", "AWS::AppStream::AppBlockBuilder", "AWS::EC2::TransitGatewayAttachment", "AWS::DMS::Certificate", @@ -760,7 +763,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-datasync-locationobjectstorage.json", "aws-appstream-directoryconfig.json", "aws-waf-sizeconstraintset.json", @@ -771,6 +773,7 @@ "aws-datasync-locationfsxlustre.json", "aws-config-organizationconformancepack.json", "aws-sagemaker-project.json", + "aws-rolesanywhere-crl.json", "aws-config-conformancepack.json", "aws-networkmanager-globalnetwork.json", "aws-imagebuilder-imagepipeline.json", @@ -831,6 +834,7 @@ "aws-cloudformation-hooktypeconfig.json", "aws-pinpoint-eventstream.json", "aws-appconfig-deploymentstrategy.json", + "aws-ec2-vpccidrblock.json", "aws-ec2-instanceconnectendpoint.json", "aws-eks-cluster.json", "aws-iam-role.json", @@ -885,12 +889,14 @@ "aws-iotevents-alarmmodel.json", "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", + "aws-transfer-profile.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-batch-schedulingpolicy.json", "aws-robomaker-robotapplicationversion.json", "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", "aws-robomaker-robotapplication.json", + "aws-acmpca-certificateauthority.json", "aws-docdb-dbsubnetgroup.json", "aws-connect-hoursofoperation.json", "aws-fsx-datarepositoryassociation.json", @@ -910,9 +916,11 @@ "aws-apigateway-usageplankey.json", "aws-greengrass-resourcedefinition.json", "aws-appconfig-extension.json", + "aws-transfer-certificate.json", "aws-connect-contactflowmodule.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-iotsitewise-asset.json", "aws-ses-emailidentity.json", @@ -928,6 +936,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -954,6 +963,7 @@ "aws-s3-accessgrantslocation.json", "aws-ec2-trafficmirrorfilterrule.json", "aws-kinesis-stream.json", + "aws-rolesanywhere-trustanchor.json", "aws-pinpoint-apnssandboxchannel.json", "aws-cognito-userpoolgroup.json", "aws-route53resolver-resolverdnssecconfig.json", @@ -1033,6 +1043,7 @@ "aws-iotsitewise-assetmodel.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-pinpoint-inapptemplate.json", "aws-iot-authorizer.json", "aws-iottwinmaker-workspace.json", @@ -1092,6 +1103,7 @@ "aws-wafv2-ipset.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-config-configurationaggregator.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-greengrass-functiondefinition.json", "aws-greengrass-groupversion.json", @@ -1107,6 +1119,7 @@ "aws-connect-securitykey.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-sagemaker-workteam.json", "aws-glue-schemaversion.json", @@ -1130,7 +1143,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-iotsitewise-portal.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", @@ -1227,6 +1239,7 @@ "aws-ec2-ipam.json", "aws-appstream-fleet.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-codedeploy-deploymentgroup.json", @@ -1295,6 +1308,7 @@ "aws-licensemanager-grant.json", "aws-elasticloadbalancingv2-listenerrule.json", "aws-transfer-user.json", + "aws-rolesanywhere-profile.json", "aws-appstream-appblockbuilder.json", "aws-dms-certificate.json", "aws-neptune-dbsubnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index 08ec85e5fa..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,429 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpccidrblock.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpccidrblock.json deleted file mode 100644 index c7487f7d53..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-vpccidrblock.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Ipv6Pool", - "/properties/VpcId", - "/properties/Ipv4IpamPoolId", - "/properties/AmazonProvidedIpv6CidrBlock", - "/properties/Ipv6CidrBlock", - "/properties/Ipv6NetmaskLength", - "/properties/Ipv4NetmaskLength", - "/properties/Ipv6IpamPoolId", - "/properties/CidrBlock" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "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": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "VpcId" - ], - "typeName": "AWS::EC2::VPCCidrBlock" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py index c4b4d8c58e..864738e678 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py @@ -904,7 +904,6 @@ "aws-servicediscovery-privatednsnamespace.json", "aws-securityhub-delegatedadmin.json", "aws-sagemaker-domain.json", - "aws-dynamodb-table.json", "aws-appsync-sourceapiassociation.json", "aws-redshift-scheduledaction.json", "aws-networkmanager-transitgatewaypeering.json", @@ -1087,6 +1086,7 @@ "aws-securityhub-hub.json", "aws-logs-metricfilter.json", "aws-kinesis-streamconsumer.json", + "aws-transfer-profile.json", "aws-stepfunctions-statemachinealias.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-globalaccelerator-crossaccountattachment.json", @@ -1095,6 +1095,7 @@ "aws-servicecatalog-serviceaction.json", "aws-apigateway-usageplan.json", "aws-gamelift-gameservergroup.json", + "aws-acmpca-certificateauthority.json", "aws-lambda-codesigningconfig.json", "aws-fsx-datarepositoryassociation.json", "aws-iam-rolepolicy.json", @@ -1116,11 +1117,12 @@ "aws-elasticache-user.json", "aws-appconfig-extension.json", "aws-networkmanager-corenetwork.json", - "aws-apigateway-gatewayresponse.json", + "aws-transfer-certificate.json", "aws-wafregional-sizeconstraintset.json", "aws-sagemaker-notebookinstancelifecycleconfig.json", "aws-apigatewayv2-integration.json", "aws-gamelift-location.json", + "aws-transfer-workflow.json", "aws-batch-jobdefinition.json", "aws-s3-multiregionaccesspointpolicy.json", "aws-ses-emailidentity.json", @@ -1137,6 +1139,7 @@ "aws-ec2-placementgroup.json", "aws-databrew-job.json", "aws-ec2-transitgatewayconnect.json", + "aws-acmpca-certificate.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-ssm-maintenancewindow.json", "aws-cloudtrail-trail.json", @@ -1233,7 +1236,6 @@ "aws-servicecatalog-acceptedportfolioshare.json", "aws-glue-securityconfiguration.json", "aws-servicecatalogappregistry-resourceassociation.json", - "aws-route53-hostedzone.json", "aws-securitylake-subscriber.json", "aws-lakeformation-resource.json", "aws-eks-fargateprofile.json", @@ -1241,6 +1243,8 @@ "aws-inspectorv2-cisscanconfiguration.json", "aws-stepfunctions-activity.json", "aws-dax-cluster.json", + "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-opsworks-stack.json", @@ -1279,6 +1283,7 @@ "aws-auditmanager-assessment.json", "aws-kms-alias.json", "aws-cloudformation-resourceversion.json", + "aws-transfer-connector.json", "aws-iot-authorizer.json", "aws-sagemaker-appimageconfig.json", "aws-networkfirewall-loggingconfiguration.json", @@ -1331,7 +1336,6 @@ "aws-rds-integration.json", "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-athena-preparedstatement.json", - "aws-ec2-instance.json", "aws-ec2-flowlog.json", "alexa-ask-skill.json", "aws-ec2-verifiedaccessendpoint.json", @@ -1367,6 +1371,7 @@ "aws-config-configurationaggregator.json", "aws-logs-deliverysource.json", "aws-resourceexplorer2-defaultviewassociation.json", + "aws-acmpca-certificateauthorityactivation.json", "aws-emr-studiosessionmapping.json", "aws-ec2-subnetcidrblock.json", "aws-amplifyuibuilder-theme.json", @@ -1389,6 +1394,7 @@ "aws-appsync-graphqlschema.json", "aws-organizations-resourcepolicy.json", "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-transfer-agreement.json", "aws-lambda-eventinvokeconfig.json", "aws-apigateway-authorizer.json", "aws-sagemaker-workteam.json", @@ -1437,7 +1443,6 @@ "aws-cloudformation-waitcondition.json", "aws-iot-resourcespecificlogging.json", "aws-secretsmanager-resourcepolicy.json", - "aws-dynamodb-globaltable.json", "aws-sso-permissionset.json", "aws-detective-organizationadmin.json", "aws-ec2-vpcdhcpoptionsassociation.json", @@ -1566,6 +1571,7 @@ "aws-efs-accesspoint.json", "aws-ec2-ipam.json", "aws-securityhub-insight.json", + "aws-acmpca-permission.json", "aws-elasticloadbalancingv2-truststore.json", "aws-secretsmanager-rotationschedule.json", "aws-wafregional-regexpatternset.json", @@ -1709,6 +1715,7 @@ "aws-rds-dbcluster.json", "aws-iot-softwarepackageversion.json", "aws-redshift-endpointaccess.json", + "aws-ec2-transitgatewayroutetablepropagation.json", "aws-redshift-clustersubnetgroup.json", "aws-ec2-networkinterfaceattachment.json", "aws-ssm-resourcepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificate.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificate.json deleted file mode 100644 index dd2174a6ec..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificate.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateAuthorityArn", - "/properties/CertificateSigningRequest", - "/properties/SigningAlgorithm", - "/properties/TemplateArn", - "/properties/Validity", - "/properties/ValidityNotBefore" - ], - "definitions": { - "ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/Extensions" - }, - "Subject": { - "$ref": "#/definitions/Subject" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "CertificatePolicyList": { - "items": { - "$ref": "#/definitions/PolicyInformation" - }, - "type": "array" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomExtensionList": { - "items": { - "$ref": "#/definitions/CustomExtension" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "ExtendedKeyUsageList": { - "items": { - "$ref": "#/definitions/ExtendedKeyUsage" - }, - "type": "array" - }, - "Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "$ref": "#/definitions/CertificatePolicyList" - }, - "CustomExtensions": { - "$ref": "#/definitions/CustomExtensionList" - }, - "ExtendedKeyUsage": { - "$ref": "#/definitions/ExtendedKeyUsageList" - }, - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectAlternativeNames": { - "$ref": "#/definitions/GeneralNameList" - } - }, - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "GeneralNameList": { - "items": { - "$ref": "#/definitions/GeneralName" - }, - "type": "array" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "PolicyQualifiers": { - "$ref": "#/definitions/PolicyQualifierInfoList" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "PolicyQualifierInfoList": { - "items": { - "$ref": "#/definitions/PolicyQualifierInfo" - }, - "type": "array" - }, - "Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - }, - "Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Value", - "Type" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:IssueCertificate", - "acm-pca:GetCertificate" - ] - }, - "delete": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificate" - ] - }, - "update": { - "permissions": [] - } - }, - "primaryIdentifier": [ - "/properties/Arn", - "/properties/CertificateAuthorityArn" - ], - "properties": { - "ApiPassthrough": { - "$ref": "#/definitions/ApiPassthrough" - }, - "Arn": { - "$ref": "#/definitions/Arn" - }, - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "minLength": 1, - "type": "string" - }, - "SigningAlgorithm": { - "type": "string" - }, - "TemplateArn": { - "$ref": "#/definitions/Arn" - }, - "Validity": { - "$ref": "#/definitions/Validity" - }, - "ValidityNotBefore": { - "$ref": "#/definitions/Validity" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Certificate" - ], - "required": [ - "CertificateAuthorityArn", - "CertificateSigningRequest", - "SigningAlgorithm", - "Validity" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::Certificate", - "writeOnlyProperties": [ - "/properties/ApiPassthrough", - "/properties/CertificateSigningRequest" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthority.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthority.json deleted file mode 100644 index ecdb17a904..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthority.json +++ /dev/null @@ -1,436 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Type", - "/properties/KeyAlgorithm", - "/properties/SigningAlgorithm", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/KeyStorageSecurityStandard", - "/properties/UsageMode" - ], - "definitions": { - "AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AccessMethod" - } - }, - "required": [ - "AccessMethod", - "AccessLocation" - ], - "type": "object" - }, - "AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "$ref": "#/definitions/AccessMethodType" - }, - "CustomObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - } - }, - "type": "object" - }, - "AccessMethodType": { - "type": "string" - }, - "Arn": { - "type": "string" - }, - "CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CrlDistributionPointExtensionConfiguration": { - "$ref": "#/definitions/CrlDistributionPointExtensionConfiguration" - }, - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "integer" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "CrlDistributionPointExtensionConfiguration": { - "additionalProperties": false, - "properties": { - "OmitExtension": { - "type": "boolean" - } - }, - "required": [ - "OmitExtension" - ], - "type": "object" - }, - "CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/KeyUsage" - }, - "SubjectInformationAccess": { - "$ref": "#/definitions/SubjectInformationAccess" - } - }, - "type": "object" - }, - "CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "CustomAttributeList": { - "items": { - "$ref": "#/definitions/CustomAttribute" - }, - "type": "array" - }, - "CustomObjectIdentifier": { - "type": "string" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "PartyName", - "NameAssigner" - ], - "type": "object" - }, - "GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/Subject" - }, - "DnsName": { - "$ref": "#/definitions/DnsName" - }, - "EdiPartyName": { - "$ref": "#/definitions/EdiPartyName" - }, - "IpAddress": { - "$ref": "#/definitions/IpAddress" - }, - "OtherName": { - "$ref": "#/definitions/OtherName" - }, - "RegisteredId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Rfc822Name": { - "$ref": "#/definitions/Rfc822Name" - }, - "UniformResourceIdentifier": { - "$ref": "#/definitions/UniformResourceIdentifier" - } - }, - "type": "object" - }, - "IpAddress": { - "type": "string" - }, - "KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "default": false, - "type": "boolean" - }, - "DataEncipherment": { - "default": false, - "type": "boolean" - }, - "DecipherOnly": { - "default": false, - "type": "boolean" - }, - "DigitalSignature": { - "default": false, - "type": "boolean" - }, - "EncipherOnly": { - "default": false, - "type": "boolean" - }, - "KeyAgreement": { - "default": false, - "type": "boolean" - }, - "KeyCertSign": { - "default": false, - "type": "boolean" - }, - "KeyEncipherment": { - "default": false, - "type": "boolean" - }, - "NonRepudiation": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "$ref": "#/definitions/CustomObjectIdentifier" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/OcspConfiguration" - } - }, - "type": "object" - }, - "Rfc822Name": { - "type": "string" - }, - "Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "$ref": "#/definitions/CustomAttributeList" - }, - "DistinguishedNameQualifier": { - "type": "string" - }, - "GenerationQualifier": { - "type": "string" - }, - "GivenName": { - "type": "string" - }, - "Initials": { - "type": "string" - }, - "Locality": { - "type": "string" - }, - "Organization": { - "type": "string" - }, - "OrganizationalUnit": { - "type": "string" - }, - "Pseudonym": { - "type": "string" - }, - "SerialNumber": { - "type": "string" - }, - "State": { - "type": "string" - }, - "Surname": { - "type": "string" - }, - "Title": { - "type": "string" - } - }, - "type": "object" - }, - "SubjectInformationAccess": { - "items": { - "$ref": "#/definitions/AccessDescription" - }, - "type": "array" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreateCertificateAuthority", - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeleteCertificateAuthority", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "list": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListCertificateAuthorities", - "acm-pca:ListTags" - ] - }, - "read": { - "permissions": [ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificateAuthorityCsr", - "acm-pca:ListTags" - ] - }, - "update": { - "permissions": [ - "acm-pca:ListTags", - "acm-pca:TagCertificateAuthority", - "acm-pca:UntagCertificateAuthority", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "$ref": "#/definitions/Arn" - }, - "CertificateSigningRequest": { - "type": "string" - }, - "CsrExtensions": { - "$ref": "#/definitions/CsrExtensions" - }, - "KeyAlgorithm": { - "type": "string" - }, - "KeyStorageSecurityStandard": { - "type": "string" - }, - "RevocationConfiguration": { - "$ref": "#/definitions/RevocationConfiguration" - }, - "SigningAlgorithm": { - "type": "string" - }, - "Subject": { - "$ref": "#/definitions/Subject" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "UsageMode": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateSigningRequest" - ], - "required": [ - "Type", - "KeyAlgorithm", - "SigningAlgorithm", - "Subject" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ACMPCA::CertificateAuthority", - "writeOnlyProperties": [ - "/properties/Subject", - "/properties/Subject", - "/properties/CsrExtensions", - "/properties/Tags", - "/properties/RevocationConfiguration", - "/properties/KeyStorageSecurityStandard" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthorityactivation.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthorityactivation.json deleted file mode 100644 index 44e82760de..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-certificateauthorityactivation.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateAuthorityArn" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - }, - "delete": { - "permissions": [ - "acm-pca:UpdateCertificateAuthority" - ] - }, - "read": { - "permissions": [ - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:DescribeCertificateAuthority" - ] - }, - "update": { - "permissions": [ - "acm-pca:ImportCertificateAuthorityCertificate", - "acm-pca:UpdateCertificateAuthority" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn" - ], - "properties": { - "Certificate": { - "type": "string" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "CertificateChain": { - "type": "string" - }, - "CompleteCertificateChain": { - "type": "string" - }, - "Status": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CompleteCertificateChain" - ], - "required": [ - "CertificateAuthorityArn", - "Certificate" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "typeName": "AWS::ACMPCA::CertificateAuthorityActivation", - "writeOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-permission.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-permission.json deleted file mode 100644 index ace91b5c21..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-acmpca-permission.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Actions", - "/properties/CertificateAuthorityArn", - "/properties/Principal", - "/properties/SourceAccount" - ], - "handlers": { - "create": { - "permissions": [ - "acm-pca:CreatePermission", - "acm-pca:ListPermissions" - ] - }, - "delete": { - "permissions": [ - "acm-pca:DeletePermission" - ] - }, - "read": { - "permissions": [ - "acm-pca:ListPermissions" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateAuthorityArn", - "/properties/Principal" - ], - "properties": { - "Actions": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html", - "taggable": false, - "typeName": "AWS::ACMPCA::Permission" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..15bc1f322f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-apigateway-gatewayresponse.json @@ -0,0 +1,115 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "handlers": { + "create": { + "permissions": [ + "apigateway:PUT", + "apigateway:GET" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "RestApiId": { + "$ref": "resource-schema.json#/properties/RestApiId" + } + }, + "required": [ + "RestApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseType": { + "enum": [ + "DEFAULT_4XX", + "DEFAULT_5XX", + "RESOURCE_NOT_FOUND", + "UNAUTHORIZED", + "INVALID_API_KEY", + "ACCESS_DENIED", + "AUTHORIZER_FAILURE", + "AUTHORIZER_CONFIGURATION_ERROR", + "INVALID_SIGNATURE", + "EXPIRED_TOKEN", + "MISSING_AUTHENTICATION_TOKEN", + "INTEGRATION_FAILURE", + "INTEGRATION_TIMEOUT", + "API_CONFIGURATION_ERROR", + "UNSUPPORTED_MEDIA_TYPE", + "BAD_REQUEST_PARAMETERS", + "BAD_REQUEST_BODY", + "REQUEST_TOO_LARGE", + "THROTTLED", + "QUOTA_EXCEEDED", + "WAF_FILTERED" + ], + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResponseType", + "RestApiId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "taggable": false, + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-globaltable.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-globaltable.json new file mode 100644 index 0000000000..2ae3432be1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-globaltable.json @@ -0,0 +1,697 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "minimum": 1, + "type": "integer" + }, + "MinCapacity": { + "minimum": 1, + "type": "integer" + }, + "SeedCapacity": { + "minimum": 1, + "type": "integer" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "additionalProperties": false, + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + } + }, + "required": [ + "ResourcePolicy" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "minimum": 0, + "type": "integer" + }, + "ScaleOutCooldown": { + "minimum": 0, + "type": "integer" + }, + "TargetValue": { + "format": "double", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "LocalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "Replicas": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableId": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], + "typeName": "AWS::DynamoDB::GlobalTable", + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-table.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-table.json new file mode 100644 index 0000000000..b883ca8f0e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-dynamodb-table.json @@ -0,0 +1,653 @@ +{ + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "LocalSecondaryIndexes" + ], + "type": "object" + }, + "then": { + "properties": { + "AttributeDefinitions": { + "minItems": 2 + }, + "KeySchema": { + "minItems": 2 + } + }, + "type": "object" + } + } + ], + "cfnLint": [ + "AWS::DynamoDB::Table/Properties" + ], + "createOnlyProperties": [ + "/properties/TableName", + "/properties/ImportSourceSpecification" + ], + "definitions": { + "AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "enum": [ + "S", + "N", + "B" + ], + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "DeprecatedHashKeyElement": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeType", + "AttributeName" + ], + "type": "object" + }, + "DeprecatedKeySchema": { + "additionalProperties": false, + "properties": { + "HashKeyElement": { + "$ref": "#/definitions/DeprecatedHashKeyElement" + } + }, + "required": [ + "HashKeyElement" + ], + "type": "object" + }, + "GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/S3BucketSource" + } + }, + "required": [ + "S3BucketSource", + "InputFormat" + ], + "type": "object" + }, + "InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/Csv" + } + }, + "type": "object" + }, + "KeySchema": { + "items": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "enum": [ + "HASH", + "RANGE" + ], + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "prefixItems": [ + { + "properties": { + "KeyType": { + "const": "HASH", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + { + "properties": { + "KeyType": { + "const": "RANGE", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + } + ], + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "ApproximateCreationDateTimePrecision": { + "enum": [ + "MICROSECOND", + "MILLISECOND" + ], + "type": "string" + }, + "StreamArn": { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::Kinesis::Stream" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 2 + }, + "Projection": { + "$ref": "#/definitions/Projection" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ProjectionType": { + "enum": [ + "ALL", + "KEYS_ONLY", + "INCLUDE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + }, + "required": [ + "WriteCapacityUnits", + "ReadCapacityUnits" + ], + "type": "object" + }, + "ResourcePolicy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "relationshipRef": { + "propertyPath": "/properties/BucketName", + "typeName": "AWS::S3::Bucket" + }, + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "SSESpecification": { + "additionalProperties": false, + "cfnLint": [ + "AWS::DynamoDB::Table/Properties/SSESpecification" + ], + "properties": { + "KMSMasterKeyId": { + "anyOf": [ + { + "relationshipRef": { + "propertyPath": "/properties/Arn", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/KeyId", + "typeName": "AWS::KMS::Key" + } + }, + { + "relationshipRef": { + "propertyPath": "/properties/AliasName", + "typeName": "AWS::KMS::Alias" + } + } + ], + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "StreamSpecification": { + "additionalProperties": false, + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "StreamViewType": { + "enum": [ + "NEW_IMAGE", + "OLD_IMAGE", + "NEW_AND_OLD_IMAGES", + "KEYS_ONLY" + ], + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:DescribeImport", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ImportTable", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UpdateTable", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Encrypt", + "kms:RevokeGrant", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:PutRetentionPolicy", + "s3:GetObject", + "s3:GetObjectMetadata", + "s3:ListBucket" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "dynamodb:DeleteTable", + "dynamodb:DescribeTable" + ], + "timeoutInMinutes": 720 + }, + "list": { + "permissions": [ + "dynamodb:ListTables" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeTable", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "dynamodb:UpdateTable", + "dynamodb:DescribeTable", + "dynamodb:DescribeTimeToLive", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:ListTagsOfResource", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:DescribeContributorInsights", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TableName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AttributeDefinition" + }, + "type": "array", + "uniqueItems": true, + "uniqueKeys": [ + "AttributeName" + ] + }, + "BillingMode": { + "enum": [ + "PROVISIONED", + "PAY_PER_REQUEST" + ], + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/ImportSourceSpecification" + }, + "KeySchema": { + "oneOf": [ + { + "$ref": "#/definitions/KeySchema", + "maxItems": 2, + "minItems": 1 + }, + { + "type": "object" + } + ] + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + }, + "type": "array", + "uniqueItems": false + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/ProvisionedThroughput" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" + }, + "StreamArn": { + "type": "string" + }, + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "propertyTransform": { + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn" + ], + "required": [ + "KeySchema" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::DynamoDB::Table", + "writeOnlyProperties": [ + "/properties/ImportSourceSpecification" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-customergateway.json deleted file mode 100644 index 522f3d2997..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-customergateway.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CertificateArn", - "/properties/BgpAsn", - "/properties/BgpAsnExtended", - "/properties/Type", - "/properties/IpAddress", - "/properties/DeviceName" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteCustomerGateway", - "ec2:DescribeCustomerGateways", - "ec2:DeleteTags" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeCustomerGateways" - ] - }, - "update": { - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeCustomerGateways" - ] - } - }, - "primaryIdentifier": [ - "/properties/CustomerGatewayId" - ], - "properties": { - "BgpAsn": { - "default": 65000, - "type": "integer" - }, - "BgpAsnExtended": { - "maximum": 4294967294, - "minimum": 2147483648, - "multipleOf": 1, - "type": "number" - }, - "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", - "type": "string" - }, - "CustomerGatewayId": { - "type": "string" - }, - "DeviceName": { - "type": "string" - }, - "IpAddress": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "Type": { - "enum": [ - "ipsec.1" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CustomerGatewayId" - ], - "required": [ - "IpAddress", - "Type" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::CustomerGateway" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-instance.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-instance.json new file mode 100644 index 0000000000..6c49e5c0b3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-instance.json @@ -0,0 +1,735 @@ +{ + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/AdditionalInfo", + "/properties/Affinity", + "/properties/EbsOptimized", + "/properties/HostId", + "/properties/InstanceType", + "/properties/KernelId", + "/properties/PrivateDnsNameOptions", + "/properties/RamdiskId", + "/properties/SecurityGroupIds", + "/properties/Tenancy", + "/properties/UserData", + "/properties/BlockDeviceMappings" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/CpuOptions", + "/properties/ElasticGpuSpecifications", + "/properties/ElasticInferenceAccelerators", + "/properties/EnclaveOptions", + "/properties/HibernationOptions", + "/properties/HostResourceGroupArn", + "/properties/ImageId", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/KeyName", + "/properties/LaunchTemplate", + "/properties/LicenseSpecifications", + "/properties/NetworkInterfaces", + "/properties/PlacementGroupName", + "/properties/PrivateIpAddress", + "/properties/SecurityGroups", + "/properties/SubnetId" + ], + "definitions": { + "AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/Ebs" + }, + "NoDevice": { + "additionalProperties": false, + "type": "object" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "requiredXor": [ + "VirtualName", + "Ebs", + "NoDevice" + ], + "type": "object" + }, + "Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "minimum": 0, + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "LaunchTemplateName", + "Version" + ] + }, + { + "required": [ + "LaunchTemplateId", + "Version" + ] + } + ], + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "enum": [ + "ip-name", + "resource-name" + ], + "type": "string" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AssociationParameter" + }, + "type": "array", + "uniqueItems": false + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "VolumeId", + "Device" + ], + "type": "object" + } + }, + "dependentExcluded": { + "NetworkInterfaces": [ + "SubnetId" + ], + "SubnetId": [ + "NetworkInterfaces" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:RunInstances", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeInstances", + "ec2:TerminateInstances", + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeVolumes", + "ec2:DescribeInstances", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "elastic-inference:DescribeAccelerators", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeElasticGpus", + "ec2:ModifyPrivateDnsNameOptions", + "ec2:DescribeNetworkInterfaces", + "ec2:AssociateIamInstanceProfile", + "ec2:DescribeIamInstanceProfileAssociations", + "ec2:DescribeInstances", + "ec2:DescribeSubnets", + "ec2:DescribeKeyPairs", + "ec2:DescribeSecurityGroups", + "ec2:DescribeVpcs", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceCreditSpecifications", + "ec2:DescribeLaunchTemplates", + "ec2:DetachVolume", + "ec2:DisassociateIamInstanceProfile", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyInstanceCreditSpecification", + "ec2:ModifyInstanceMaintenanceOptions", + "ec2:ModifyInstancePlacement", + "ec2:MonitorInstances", + "ec2:AttachVolume", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:ReplaceIamInstanceProfileAssociation", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:UnmonitorInstances", + "elastic-inference:DescribeAccelerators", + "ssm:CreateAssociation", + "ssm:DeleteAssociation", + "ssm:DescribeAssociation", + "ssm:ListAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceId" + ], + "properties": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "enum": [ + "default", + "host" + ], + "type": "string" + }, + "AvailabilityZone": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/AvailabilityZone" + ], + "type": "string" + }, + "BlockDeviceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "integer" + }, + "ThreadsPerCore": { + "type": "integer" + } + }, + "type": "object" + }, + "CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticGpuSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "ElasticInferenceAccelerators": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ElasticInferenceAccelerator" + }, + "type": "array", + "uniqueItems": false + }, + "EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "cfnLint": [ + "AWS::EC2::Instance/Properties/InstanceType" + ], + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": false + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification", + "type": "object" + }, + "LicenseSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LicenseSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/PrivateDnsNameOptions", + "type": "object" + }, + "PrivateIp": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroups": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SsmAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default", + "dedicated", + "host" + ], + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/InstanceId", + "/properties/PrivateIp", + "/properties/PublicDnsName", + "/properties/PublicIp", + "/properties/PrivateDnsName", + "/properties/VpcId" + ], + "requiredXor": [ + "ImageId", + "LaunchTemplate" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Instance", + "writeOnlyProperties": [ + "/properties/BlockDeviceMappings/*/NoDevice", + "/properties/BlockDeviceMappings/*/VirtualName", + "/properties/LicenseSpecifications", + "/properties/AdditionalInfo", + "/properties/Ipv6AddressCount", + "/properties/Ipv6Addresses", + "/properties/PropagateTagsToVolumeOnCreation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-transitgatewayroutetablepropagation.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-transitgatewayroutetablepropagation.json deleted file mode 100644 index 1b2c5205a2..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-ec2-transitgatewayroutetablepropagation.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayAttachmentId": { - "type": "string" - }, - "TransitGatewayRouteTableId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4690c89e62 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-route53-hostedzone.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "maxLength": 256, + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53:CreateHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:ChangeTagsForResource", + "route53:GetChange", + "route53:AssociateVPCWithHostedZone", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "route53:DeleteHostedZone", + "route53:DeleteQueryLoggingConfig", + "route53:ListQueryLoggingConfigs", + "route53:GetChange" + ] + }, + "list": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListHostedZones", + "route53:ListHostedZonesByName", + "route53:ListQueryLoggingConfigs", + "route53:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "route53:GetHostedZone", + "route53:ListTagsForResource", + "route53:ListQueryLoggingConfigs" + ] + }, + "update": { + "permissions": [ + "route53:GetChange", + "route53:ListTagsForResource", + "route53:UpdateHostedZoneComment", + "route53:ChangeTagsForResource", + "route53:AssociateVPCWithHostedZone", + "route53:DisassociateVPCFromHostedZone", + "route53:CreateQueryLoggingConfig", + "route53:DeleteQueryLoggingConfig", + "ec2:DescribeVpcs" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "maxLength": 1024, + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/Name": "$join([Name, \".\"])" + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git", + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-agreement.json deleted file mode 100644 index 120c21972d..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-agreement.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ServerId" - ], - "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": [ - "transfer:CreateAgreement", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteAgreement" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServerId": { - "$ref": "resource-schema.json#/properties/ServerId" - } - }, - "required": [ - "ServerId" - ] - }, - "permissions": [ - "transfer:ListAgreements" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeAgreement" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateAgreement", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgreementId", - "/properties/ServerId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "AgreementId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^a-([0-9a-f]{17})$", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "BaseDirectory": { - "maxLength": 1024, - "pattern": "^$|/.*", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ServerId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^s-([0-9a-f]{17})$", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/AgreementId", - "/properties/Arn" - ], - "required": [ - "ServerId", - "LocalProfileId", - "PartnerProfileId", - "BaseDirectory", - "AccessRole" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Agreement" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-certificate.json deleted file mode 100644 index 7c70cb8bb5..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-certificate.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Certificate", - "/properties/CertificateChain", - "/properties/PrivateKey" - ], - "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": [ - "transfer:ImportCertificate", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteCertificate" - ] - }, - "list": { - "permissions": [ - "transfer:ListCertificates" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeCertificate" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateCertificate", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CertificateId" - ], - "properties": { - "ActiveDate": { - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Certificate": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateChain": { - "maxLength": 2097152, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{17})$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "InactiveDate": { - "type": "string" - }, - "NotAfterDate": { - "type": "string" - }, - "NotBeforeDate": { - "type": "string" - }, - "PrivateKey": { - "maxLength": 16384, - "minLength": 1, - "pattern": "^[\t\n\r -\u00ff]*", - "type": "string" - }, - "Serial": { - "maxLength": 48, - "minLength": 0, - "pattern": "^[\\p{XDigit}{2}:?]*", - "type": "string" - }, - "Status": { - "enum": [ - "ACTIVE", - "PENDING", - "INACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Type": { - "enum": [ - "CERTIFICATE", - "CERTIFICATE_WITH_PRIVATE_KEY" - ], - "type": "string" - }, - "Usage": { - "enum": [ - "SIGNING", - "ENCRYPTION" - ], - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CertificateId", - "/properties/Status", - "/properties/Type", - "/properties/Serial", - "/properties/NotAfterDate", - "/properties/NotBeforeDate" - ], - "required": [ - "Certificate", - "Usage" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Certificate", - "writeOnlyProperties": [ - "/properties/PrivateKey" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-connector.json deleted file mode 100644 index dcc43f1de2..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-connector.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "SftpConnectorTrustedHostKey": { - "maxLength": 2048, - "minLength": 1, - "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": [ - "transfer:CreateConnector", - "transfer:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteConnector" - ] - }, - "list": { - "permissions": [ - "transfer:ListConnectors" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeConnector" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateConnector", - "transfer:UnTagResource", - "transfer:TagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ConnectorId" - ], - "properties": { - "AccessRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Config": { - "additionalProperties": false, - "properties": { - "BasicAuthSecretId": { - "maxLength": 2048, - "minLength": 0, - "type": "string" - }, - "Compression": { - "enum": [ - "ZLIB", - "DISABLED" - ], - "type": "string" - }, - "EncryptionAlgorithm": { - "enum": [ - "AES128_CBC", - "AES192_CBC", - "AES256_CBC", - "NONE" - ], - "type": "string" - }, - "LocalProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "MdnResponse": { - "enum": [ - "SYNC", - "NONE" - ], - "type": "string" - }, - "MdnSigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE", - "DEFAULT" - ], - "type": "string" - }, - "MessageSubject": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\p{Print}\\p{Blank}]+", - "type": "string" - }, - "PartnerProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "SigningAlgorithm": { - "enum": [ - "SHA256", - "SHA384", - "SHA512", - "SHA1", - "NONE" - ], - "type": "string" - } - }, - "type": "object" - }, - "ConnectorId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^c-([0-9a-f]{17})$", - "type": "string" - }, - "LoggingRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "arn:.*role/.*", - "type": "string" - }, - "SftpConfig": { - "additionalProperties": false, - "properties": { - "TrustedHostKeys": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SftpConnectorTrustedHostKey" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": false - }, - "UserSecretId": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "Url": { - "maxLength": 255, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ConnectorId" - ], - "required": [ - "AccessRole", - "Url" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Connector" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-profile.json deleted file mode 100644 index 4db71d0d31..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-profile.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ProfileType" - ], - "definitions": { - "CertificateId": { - "maxLength": 22, - "minLength": 22, - "pattern": "^cert-([0-9a-f]{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": [ - "transfer:CreateProfile", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "transfer:ListProfiles" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeProfile" - ] - }, - "update": { - "permissions": [ - "transfer:UpdateProfile", - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "As2Id": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "CertificateIds": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CertificateId" - }, - "type": "array" - }, - "ProfileId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^p-([0-9a-f]{17})$", - "type": "string" - }, - "ProfileType": { - "enum": [ - "LOCAL", - "PARTNER" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ProfileId" - ], - "required": [ - "As2Id", - "ProfileType" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Transfer::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-workflow.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-workflow.json deleted file mode 100644 index f1ba1af513..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-transfer-workflow.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/OnExceptionSteps", - "/properties/Description" - ], - "definitions": { - "EfsInputFileLocation": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 128, - "minLength": 0, - "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:(access-point/fsap|file-system/fs)-[0-9a-f]{8,40}|fs(ap)?-[0-9a-f]{8,40})$", - "type": "string" - }, - "Path": { - "maxLength": 65536, - "minLength": 1, - "pattern": "^[^\\x00]+$", - "type": "string" - } - }, - "type": "object" - }, - "InputFileLocation": { - "additionalProperties": false, - "properties": { - "EfsFileLocation": { - "$ref": "#/definitions/EfsInputFileLocation" - }, - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3FileLocation": { - "additionalProperties": false, - "properties": { - "S3FileLocation": { - "$ref": "#/definitions/S3InputFileLocation" - } - }, - "type": "object" - }, - "S3InputFileLocation": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "Key": { - "maxLength": 1024, - "minLength": 0, - "pattern": ".*", - "type": "string" - } - }, - "type": "object" - }, - "S3Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "WorkflowStep": { - "additionalProperties": false, - "properties": { - "CopyStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/S3FileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "CustomStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Target": { - "maxLength": 170, - "minLength": 0, - "pattern": "arn:[a-z-]+:lambda:.*$", - "type": "string" - }, - "TimeoutSeconds": { - "maximum": 1800, - "minimum": 1, - "type": "integer" - } - }, - "type": "object" - }, - "DecryptStepDetails": { - "additionalProperties": false, - "properties": { - "DestinationFileLocation": { - "$ref": "#/definitions/InputFileLocation" - }, - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "OverwriteExisting": { - "enum": [ - "TRUE", - "FALSE" - ], - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Type": { - "enum": [ - "PGP" - ], - "type": "string" - } - }, - "type": "object" - }, - "DeleteStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - } - }, - "type": "object" - }, - "TagStepDetails": { - "additionalProperties": false, - "properties": { - "Name": { - "maxLength": 30, - "minLength": 0, - "pattern": "^[\\w-]*$", - "type": "string" - }, - "SourceFileLocation": { - "maxLength": 256, - "minLength": 0, - "pattern": "^\\$\\{(\\w+.)+\\w+\\}$", - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/S3Tag" - }, - "maxItems": 10, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "COPY", - "CUSTOM", - "DECRYPT", - "DELETE", - "TAG" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "transfer:CreateWorkflow", - "transfer:TagResource" - ] - }, - "delete": { - "permissions": [ - "transfer:DeleteWorkflow" - ] - }, - "list": { - "permissions": [ - "transfer:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "transfer:DescribeWorkflow" - ] - }, - "update": { - "permissions": [ - "transfer:UnTagResource", - "transfer:TagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/WorkflowId" - ], - "properties": { - "Arn": { - "maxLength": 1600, - "minLength": 20, - "pattern": "arn:.*", - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[\\w\\- ]*$", - "type": "string" - }, - "OnExceptionSteps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Steps": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowStep" - }, - "maxItems": 8, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "WorkflowId": { - "maxLength": 19, - "minLength": 19, - "pattern": "^w-([a-z0-9]{17})$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkflowId", - "/properties/Arn" - ], - "required": [ - "Steps" - ], - "taggable": true, - "typeName": "AWS::Transfer::Workflow" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py index 48a13b4c7b..b3108b3908 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py @@ -1765,6 +1765,7 @@ "aws-omics-rungroup.json", "aws-dax-cluster.json", "aws-ec2-customergateway.json", + "aws-rds-dbinstance.json", "aws-route53profiles-profileresourceassociation.json", "aws-elasticache-cachecluster.json", "aws-ses-receiptruleset.json", @@ -1837,7 +1838,6 @@ "aws-medialive-channel.json", "aws-neptunegraph-privategraphendpoint.json", "aws-docdb-eventsubscription.json", - "aws-route53resolver-firewallrulegroup.json", "aws-autoscaling-scalingpolicy.json", "aws-lightsail-bucket.json", "aws-scheduler-schedule.json", @@ -2356,6 +2356,7 @@ "aws-ivs-stage.json", "aws-certificatemanager-account.json", "aws-frauddetector-variable.json", + "aws-location-apikey.json", "aws-kinesisanalyticsv2-application.json", "aws-route53resolver-resolverruleassociation.json", "aws-s3-bucketpolicy.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-rds-dbinstance.json deleted file mode 100644 index 3e64baba09..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-rds-dbinstance.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "additionalProperties": false, - "cfnLint": [ - "AWS::RDS::DBInstance/Properties" - ], - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "cfnLint": [ - "AWS::RDS::DBInstance/Properties/AvailabilityZone" - ], - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-firewallrulegroup.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-firewallrulegroup.json new file mode 100644 index 0000000000..5b378de073 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-route53resolver-firewallrulegroup.json @@ -0,0 +1,243 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FirewallRule": { + "additionalProperties": false, + "properties": { + "Action": { + "enum": [ + "ALLOW", + "BLOCK", + "ALERT" + ], + "type": "string" + }, + "BlockOverrideDnsType": { + "enum": [ + "CNAME" + ], + "type": "string" + }, + "BlockOverrideDomain": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "BlockOverrideTtl": { + "maximum": 604800, + "minimum": 0, + "type": "integer" + }, + "BlockResponse": { + "enum": [ + "NODATA", + "NXDOMAIN", + "OVERRIDE" + ], + "type": "string" + }, + "FirewallDomainListId": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "FirewallDomainRedirectionAction": { + "enum": [ + "INSPECT_REDIRECTION_DOMAIN", + "TRUST_REDIRECTION_DOMAIN" + ], + "type": "string" + }, + "Priority": { + "type": "integer" + }, + "Qtype": { + "maxLength": 16, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FirewallDomainListId", + "Priority", + "Action" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "delete": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "list": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "read": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + }, + "update": { + "permissions": [ + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "maxLength": 600, + "minLength": 1, + "type": "string" + }, + "CreationTime": { + "maxLength": 40, + "minLength": 20, + "type": "string" + }, + "CreatorRequestId": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "FirewallRules": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/FirewallRule" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "ModificationTime": { + "maxLength": 40, + "minLength": 20, + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)", + "type": "string" + }, + "OwnerId": { + "maxLength": 32, + "minLength": 12, + "type": "string" + }, + "RuleCount": { + "type": "integer" + }, + "ShareStatus": { + "enum": [ + "NOT_SHARED", + "SHARED_WITH_ME", + "SHARED_BY_ME" + ], + "type": "string" + }, + "Status": { + "enum": [ + "COMPLETE", + "DELETING", + "UPDATING", + "INACTIVE_OWNER_ACCOUNT_CLOSED" + ], + "type": "string" + }, + "StatusMessage": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/RuleCount", + "/properties/Status", + "/properties/StatusMessage", + "/properties/OwnerId", + "/properties/ShareStatus", + "/properties/CreatorRequestId", + "/properties/CreationTime", + "/properties/ModificationTime" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Route53Resolver::FirewallRuleGroup" +}